创建正则对象
// 构造函数
let reg =
new RegExp("规则", "标识") /
// 字面量书写
规则 /
标识;
正则常用方法
test
返回 false,true
reg.test("字符串"); // 验证字符串是否满足规则
exec
得到一个数组
let floor_ex = /^\[楼板\]\[(.*)\](.*)/.exec(name);
其他
// reg是正则对象,str是字符串
str.replace(reg, "替换目标"); // 将字符串中匹配正则的部分替换为目标
// 将字符串中匹配正则的部分传入到回调函数的参数中,将函数的返回结果进行替换
str.replace(reg, function (s) {
return "替换目标";
});
标识
标识字符 | 含义 |
---|---|
i | 不区分大小写 |
g | 全局匹配,如果没有此标识,只会匹配第一个 |
m | 多行匹配 |
规则
详见:https://developer.mozilla.org/zhCN/docs/Web/JavaScript/Guide/Regular_Expressions
字符匹配规则
规则书写 | 含义 |
---|---|
直接书写一个普通字符 |
匹配书写的字符 |
[字符规则] |
匹配[]中出现的所有字符规则 |
[^字符串规则] |
匹配[]中没有出现的字符规则 |
. |
匹配任意字符 |
\d |
匹配数字,等价于 [0-9] |
\D |
匹配非数字 |
\s |
匹配空白字符,包括空格、回车、换行、制表 |
\S |
匹配所有非空白字符 |
\w |
匹配单词字符,等价于 [A-Za-z0-9_] |
\W |
匹配非单词字符,等价于 [^A-Za-z0-9_] |
^ |
匹配字符串开始,写到规则开始位置 |
$ |
匹配字符串结束,写到规则结束位置 |
\\ |
匹配\ |
连续的规则
多个规则可以连续书写,用以匹配多个字符,例如:
/\d[a-zA-Z]/; // 匹配以1个数字紧跟一个字母
若多个规则是一个或者的关系,使用|
分割
/\d[a-zA-Z]|[a-zA-Z]\d/; // 匹配以1个数字紧跟一个字母,或者一个字母紧跟一个数字
规则的重复(量词)
一个或一段规则之后,可以紧跟一个量词,表示前面的规则出现的次数
/[a-zA-Z]\d{3}/; // 匹配1个字母,后面跟上连续的3个数字,{3}是量词,应用的规则是\d
/([a-zA-Z]\d){3}/; // {3}是量词,应用的规则是 [a-zA-Z]\d
量词 | 含义 |
---|---|
{n} |
出现 n 次 |
{n, m} |
出现 n-m 次 |
{n,} |
至少出现 n 次 |
* |
出现 0 次或多次,等价于{0,} |
? |
出现 0 次或一次,等价于{0,1} |
+ |
出现 1 次或多次,等价于{1,} |
示例
短信内容示例 1:贵公司尾号 xxxx 账号 xx 月 xx 日 xx:xx 转入 xxxxxx 元(汇兑),对方信息:xxxxxx【杭州银行】
.通配不保留内容,(.)通配保留内容
/贵公司尾号.*账号(.*)月(.*)日(.*):(.*)转入(.*)元.*对方信息:(.*)【杭州银行】/.exec(handleContent)
6 位 0-9 a-z
/^[0-9A-Z]{6}-[0-9A-Z]{4}-[0-9A-Z]{4}-[0-9A-Z]{6}-[0-9A-Z]{4}$/g