const reg = /abc/ //创建正则 匹配abc,包含abc即可
const reg = new regExp(/abc/);
//test(); 用作检测是否匹配
const result = reg.test('123abc'); //true
const result = reg.test('123bcd'); //false
//exec();
const result = reg.exec('123'); //null
const result = reg.exec('123abc'); //返回数组
/*['abc', index: 3, input: '123abc', groups: undefined]
0: "abc"
groups: undefined
index: 3
input: "123abc"
length: 1
[[Prototype]]: Array(0)*/
元字符
- 边界符
//边界符
//^ 以xx开头
const reg = /^a/;
console.log(reg.test('123abc')); //false
console.log(reg.test('Abc123')); //false
console.log(reg.test('abc123')); //true
//$ 以xx结尾
const reg = /c$/;
console.log(reg.test('123abc')); //true
console.log(reg.test('abc123')); //false
如果^和$同时使用,则具有精确匹配的含义
const reg = /^abc$/; //只能为abc
console.log(reg.test('abc')); //true
console.log(reg.test('aaabbbccc')); //false
console.log(reg.test('abcabc')); //false
- 量词符
设定某个模式出现的次数,即使字符前的某个字符串出现多次
// * 重复零次或更多次 >=0
const reg = /^ab*c$/; //此时中间的b可以为多个,且其中的值仅为b
console.log(reg.test('abbbbc')); //true
console.log(reg.test('ac')); //true
const reg = /^a*$/;
console.log(reg.test('')); //true
// + 最少出现一次 >0
const reg = /^a+$/;
console.log(reg.test('')); //false
console.log(reg.test('a')); //true
// ? 出现0次或1次 0||1
const reg = /^a?$/;
console.log(reg.test('')); //true
console.log(reg.test('a')); //true
console.log(reg.test('aa')); //false
// {x} 出现x次,且仅为x次
const reg = /^a{3}$/
console.log(reg.test('aaa')); //true
console.log(reg.test('aa')); //false
// {x,} 出现x次,且不小于x次 >= x
const reg = /^a{3,}$/
console.log(reg.test('aaaa')); //true
console.log(reg.test('aa')); //false
//{x,y} 出现次数大于等于x次且小于等于y次
const reg = /^a{3,6}$/
console.log(reg.test('aaaa')); //true
console.log(reg.test('aa')); //false
console.log(reg.test('aaaaaaa')); //false
字符类-字符集合
[abc]
===> 匹配中括号中的任意一个
[^abc]
===> 匹配非中括号中的任意一个,取反
const reg = /^[abc]$/;
console.log(reg.test('b')); //true
console.log(reg.test('ac')); //false
const reg = /^[a-z]$/;
console.log(reg.test('g')); //true
console.log(reg.test('xy')); //false
const reg = /^[a-z]{2}$/;
console.log(reg.test('xy')); //true
console.log(reg.test('x')); //false
const reg = /^[a-zA-Z]$/;
console.log(reg.test('X')); //true
console.log(reg.test('b')); //true
const reg = /^[a-zA-Z0-9]$/;
console.log(reg.test('6')); //true
console.log(reg.test('A')); //true
const reg = /^[^a-z]$/;
console.log(reg.test('a')); //false
console.log(reg.test('A')); //true
.
匹配除\n
之外的任意单字符
const reg = /^.$/;
console.log(reg.test('A')); //true
console.log(reg.test('\n')); //false
consoel.log(reg.test('ab')); //false
匹配全部字符
const reg = /^(.|\n)$/;
console.log('a'); //true
console.log('.'); //true
预定义类
// \d ==> [0-9] 预定义数字
const reg = /^\d{4}$/;
console.log(reg.test('1234')); //true
console.log(reg.test('a')); //false
// \D ==> [^0-9] 取非数字
const reg = /^\D$/;
console.log(reg.test('a')); //true
console.log(reg.test('1')); //false
// \w ==> [a-zA-Z0-9_] 数字字母下划线
const reg = /^\w$/;
console.log(reg.test('1')); //true
console.log(reg.test('-')); //false
// \W ==> [^a-zA-Z0-9_] 非数字字母下划线
const reg = /^\W$/;
console.log(reg.test('1')); //false
console.log(reg.test('-')); //true
// \s ==> [''] 空白符
const reg = /^\s$/;
console.log(reg.test('1')); //false
console.log(reg.test('')); //true
// \S ==> [^''] 非空白
const reg = /^\S$/;
console.log(reg.test('1')); //true
console.log(reg.test('')); //false
修饰符
[]
具有一定的转义效果
[a|b]
==> 即从a,,b三者选其一
let str = 'abccd'
str = str.replace(/c/,'*');
console.log(str); //ab*cd
str = str.replace(/c/g,'*'); //全局
console.log(str); //ab**d
let str = 'AabbCcd'
str = str.replace(/c/gi,'*') //不分大小写
console.log(str); //Aabb**d