ES5基础之正则表达式02:范围类、预定义类和边界字符
1.范围类
//元字符 /* * 正则表达式由两种基本字符类型组成 * 1.原义文本字符:例如123abc * 2.元字符:元字符是在正则表达式中有特殊含义的非字母字符 */ //常见特殊符号:. * ? $ ^ | \ ( ) { } [ ] /* 1.字符类 * 我们可以使用元字符[]来构建一个简单的类 * 所谓类是指符合某些特性的对象,一个泛指,而不是特值某些字符 * 表达式[abc]把字母a字母b字符c归为一类,表达式可以匹配这类的字符,而不是匹配abc */ var string = 'a1b2c3'; string = string.replace(/[abc]/g, 'X'); console.log(string); // 在 [] 前面加 ^ 表示取反,比如:var reg = /[^abc]/g 表示匹配非abc; var string = 'a1b2c3'; string = string.replace(/[^abc]/g, 'X'); console.log(string); /* 2.范围类 * 比如:使用字符类匹配数字则为[0123456789] 这样比较麻烦 * 正则表达式为我们提供了范围类 * 我们可以使用 [a-z] 来连接两个字符表示从a-z的任意字符 * [0-9]表示任意数字 * 在 [] 组成的类内部是可以连写的 [a-zA-Z0-9]; */ var string = 'a1b2c3ccee654ADAD'; string = string.replace(/[a-zA-Z0-9]/g, 'X'); console.log(string);//全部都为X //注意:- 在 []内部表示范围的意思,如果要匹配 - ,可以直接加载后面 var string = 'a1b-2c3c-cee654A-DAD'; string = string.replace(/[a-zA-Z0-9-]/g, 'X'); console.log(string);//全部都为X
2.预定义类
/* 3.预定义类 * 正则表达式提供预定义类来匹配常见的字符类 * 字符-等价类-含义 * . <=> [^\r\n] 除了回车换行之外的所有字符 * \d <=> [0-9] 数字字符 digital * \D <=> [^0-9] 非数字字符 digital * \s <=> [\t\n\x0B\f\r] 空白字符 space * \S <=> [^\t\n\x0B\f\r] 非空白字符 space * \w <=> [a-zA-Z0-9_] 字母数字下划线 word * \W <=> 非字母数字下划线 word */ //实例1:匹配一个 ab + 数字 + 任意字符 的字符串 // ab\d.
3.边界字符
/* 4.边界字符 * 正则表达式提供了几个常用边界匹配字符 * 字符-含义 * ^ - 以 xxx 开始 * $ - 以 xxx 结束 * \b - 单词边界 * \B - 非单词边界 */ //关于单词边界的使用:需要单词边界--双边 var string = 'this is a boy, this is a girl'; string = string.replace(/\bis\b/g, 'my') console.log(string); //关于单词边界的使用:不需要单词边界--单边 var string = 'this is a boy, this is a girl'; string = string.replace(/\Bis/g, 'my') console.log(string); //关于单词边界的使用:不需要单词边界--双边 var string = 'this is a boy, this is a girl'; string = string.replace(/\Bis/g, 'my') console.log(string); //关于单词边界的使用:^ var string = '@123@abc@'; string = string.replace(/@./g, 'Q'); console.log(string); var string = '@123@abc@'; string = string.replace(/^@./g, 'Q'); console.log(string); //关于单词边界的使用:$ var string = '@123@abc@'; string = string.replace(/.@/g, 'Q'); console.log(string); //关于单词边界的使用:$ var string = '@123@abc@'; string = string.replace(/.@$/g, 'Q'); console.log(string);