定义:
const reg = new RegExp('^([a-zA-Z0-9_-])+$','igm');
const reg2 = /^([a-zA-Z0-9_-])+$/igm;
修饰符
修饰符 | 描述 |
---|---|
i | 忽略大小写 |
g | 全局匹配 |
m | 执行多行匹配 |
查看正则有哪些方法
console.log(reg.__proto__) ;
reg自带方法
(1)reg.test(str)
判断字符串是否匹配正则表达式
reg.test('a'); // true
reg.test('!a'); // false
(2)reg.compile(reg)
compile主要用于修改正则表达式
const reg=/man/;
reg.compile("woman");
console.log(reg); // /woman/
(3)reg.exec(str)
对字符串匹配后返回一个数组 ,不匹配返回null
const reg =/people/;
const result= reg.exec("ipeople")
console.log(result); // [ 'people', index: 1, input: 'ipeople' ]
result[0]为匹配结果
result.index为第一个匹配的下标
result.input 为匹配的字符串
(4)reg.toString()
获得正则的字符串
const reg =/people/g;
console.log(reg.toString()); ///people/g
在string中使用的方法
(1) String.search(reg)
查询字符串中第一个匹配的下标,不匹配则返回-1
const reg =/a/g;
const str = "abcdefg acd";
console.log(str.search(reg)); // 0
(2) String.replace(reg)
替换匹配正则的内容
const reg =/abcd/g;
const str = "abcdefg";
console.log(str.replace(reg,'0')); // 0efg
(4) String.split(reg)
用于分割字符串
const reg =/[\,\.\/\-\:]/g;
const str = "a,b.c/d-e:f";
console.log(str.split(reg)); // [ 'a', 'b', 'c', 'd', 'e', 'f' ]
(4) String.match(reg)
一般用于全局匹配,返回一个数组,内容为匹配的结果
const reg =/a[a-z]+d/g;
const str = "abcdefg acd";
console.log(str.match(reg)); //[ 'abcd', 'acd' ]
(5) String.matchAll(reg)
matchAll 可以一次性取出所有匹配。不过,它返回的是一个遍历器(Iterator),而不是数组
const reg =/a[a-z]+d/g;
const str = "abcdefg acd";
let array = [...str.matchAll(reg)];
console.log(array[0]); // Array ["abcd"]
console.log(array[1]); // Array ["acd"]