正则表达式
- 正则表达式是用于匹配字符串中字符组合的模式。在JavaScript中,正则表达式也是对象。
通过字面量创建
var 变量名 = /表达式/;
通过调用 RegExp 对象的构造函数创建
var 变量名 = new RegExp(/表达式/);
测试正则表达式 test
regexObj.test(str)
<body>
<script>
var regexp = new RegExp(/123/);
console.log(regexp);
var rg = /123/;
console.log(rg.test(123));
console.log(rg.test('abc'));
</script>
</body>
正则表达式中的特殊在字符
- 如果^ 和 $ 在一起,表示必须是精确匹配
var rg = /abc/;
console.log(rg.test('abc'));
console.log(rg.test('abcd'));
console.log(rg.test('aabcd'));
var reg = /^abc/;
console.log(reg.test('abc'));
console.log(reg.test('abcd'));
console.log(reg.test('aabcd'));
var reg1 = /^abc$/
字符类
- 字符类表示有一系列字符可供选择,只要匹配其中一个就可以了
- 所有可供选择的字符都放在方括号内
[] 方括号
/[abc]/.test('andy');
- 后面的字符串只要包含 abc 中任意一个字符,都返回true
[-]方括号内部 范围符
/^[a-z]$/.test()
- 方括号内部加上 ^ 表示取反,只要包含方括号内的字符,都返回 false
- 注意和边界符 ^ 区别,边界符写到方括号外面
字符组合
/[a-z1-9]/.test('andy')
- 方括号内部可以使用字符组合,这里表示包含 a 到 z的26个英文字母和1到9的数字都可以
<body>
<script>
var rg = /[abc]/;
console.log(rg.test('andy'));
console.log(rg.test('baby'));
console.log(rg.test('color'));
console.log(rg.test('red'));
var rg1 = /^[abc]$/;
console.log(rg1.test('aa'));
console.log(rg1.test('a'));
console.log(rg1.test('b'));
console.log(rg1.test('c'));
console.log(rg1.test('abc'));
console.log('------------------');
var reg = /^[a-z]$/;
console.log(reg.test('a'));
console.log(reg.test('z'));
console.log(reg.test(1));
console.log(reg.test('A'));
var reg1 = /^[a-zA-Z0-9_-]$/;
console.log(reg1.test('a'));
console.log(reg1.test('B'));
console.log(reg1.test(8));
console.log(reg1.test('-'));
console.log(reg1.test('_'));
console.log(reg1.test('!'));
console.log('----------------');
var reg2 = /^[^a-zA-Z0-9_-]$/;
console.log(reg2.test('a'));
console.log(reg2.test('B'));
console.log(reg2.test(8));
console.log(reg2.test('-'));
console.log(reg2.test('_'));
console.log(reg2.test('!'));
</script>
</body>
量词符