字符类
字符类是一个字符集,如果字符集中的任何一个字符有匹配,它就会找到该匹配项。正则表达式中的“[]”可以实现一个字符集合,只要求匹配其中的一项,所有可供选择的字符都放在方括号内。常用的字符范围如表1所示。
表1 字符范围示例
pattern(模式) | 说明 |
---|---|
[cat] | 匹配字符集合中的任意一个字符c、a、t |
[^cat] | 匹配除c、a、t以外的字符 |
[A-Z] | 匹配字母A~Z范围内的字符 |
[^a-z] | 匹配字母a~z范围外的字符 |
[a-zA-Z0-9] | 匹配大小写字母和0~9范围内的字符 |
[\u4e00-\u9fa5] | 匹配任意一个中文字符 |
接下来我们使用“[]”演示其常见的用法,示例代码如下。
1 var reg = /[abc]/;
2 console.log(reg.test('andy')); // 结果为:true
3 console.log(reg.test('baby')); // 结果为:true
4 console.log(reg.test('color')); // 结果为:true
5 console.log(reg.test('red')); // 结果为:flase
6 var rg = /^[abc]$/;
7 console.log(rg.test('a')); // 结果为:true
8 console.log(rg.test('aa')); // 结果为:false
9 console.log(rg.test('b')); // 结果为:true
10 console.log(rg.test('c')); // 结果为:true
11 console.log(rg.test('abc')); // 结果为:flase
上述代码中,第1行的reg表达式,表示只要包含有a、b、c中的一个,就返回true。第6行的rg表达式,表示三选一,只有是a或者b或者c这3个字母,才返回true。
“[]”与连字符“-”一起使用,表示匹配到指定范围内的字符。例如,可以限定用户只能输入小写英文字母。示例代码如下。
1 var rg = /^[a-z]$/;
2 console.log(rg.test('a')); // 结果为:true
3 console.log(rg.test('z')); // 结果为:true
上述代码中,第1行的rg表达式,表示匹配26个小写英文字母(范围a到z)中的任意一个字母,匹配成功返回ture,否则返回false。