正则表达式:RegExp(Regular Expression)
作用:判断字符串,是否符合规则
创建正则表达式
1、字面量创建
关键字 标识符 赋值符号 / 规则 / 通配符
let re = /a/
2、构造函数创建
let re = new RegExp(规则);
let str = ‘bcade’;
let re = /a/;
返回字符串是否符合规则。(返回布尔值)
书写格式:
正则.test(字符串)
例:let result = re.test(str);
console.log(result);//true
返回符合规则的内容
书写格式:
字符串.match(正则)
g:全局查找(global)
i:大小写不敏感
m:多行查找
手机号的正则
例:let str = 13888888888
;
let re = /1[3-9][0-9]{9}$/;
let result = str.match(re);
console.log(result);
中括号[]
每一个[],代表一位,中括号里添加条件
[12]表示,该位置,是1或2都返回true
[0-9]表示,该位置,是0-9的整数。都返回true
[abc]表示,该位置,是a、b、c都返回true
[a-z]表示,该位置,是a-z都返回true
[A-Z]表示,该位置,是A-Z都返回true
以XXX开始 书写格式: 2[X][X]
^放在中括号外面,代表以[]里面的内容开始,满足返回true
^放在中括号里面,代表不能以[]里面的内容开始,满足返回true
以XXX结束 书写格式:[X]$
例:let re3 = /[a]$/;
量词 {}
方式1:{n} 匹配n个
方式2:{n,m} 最多匹配m个,最少匹配n个
注:慵懒匹配(取多不取少)
例:let str = ‘aaaaaaaaaaa’;
let re = /a{2,}/g;
console.log(str.match(re));
占位符 .:匹配任意字符
例:let str = ‘zh zk zp zyh hzh’;
let re =/z.{2}/g;
console.log(str.match(re));//[ 'zh ', 'zk ', 'zp ', ‘zyh’ ]
n(?=m)
功能:n是查找的值,m是条件
查找n,n后面是m,则条件满足。
例:let str = “a1ba2c3”;
let re = /a(?!1)/g;
console.log(str.match(re));
n(?!m)
功能:n是查找的值,m是条件
查找n,n后面不是m,则条件满足。