1、什么是正则?
我的理解:处理字符串的工具。
2、如何使用?
/\d/
匹配0-9的字符串:0 1 2 3 4 5 6 7 8 9
/\.(jpg|png|gif)/i
1.jpg
a.JPG
a.Jpg
3、定界符两个斜杠://
匹配规则写在两个两个斜杠之间
4、 转义一个反斜杠\
\d [0-9]
\w [a-z0-9_]
\s 空白
. 任意字符
\D [^0-9] 其中 ^表示排除
\W [^a-z0-9_]
\S 非空白
5、定界符右侧的:
1)i 忽略大小写
2)g 即global 贪婪模式,也可以组合使用 ig或 gi
6、 元字符一对中括号[ ]的含义
1)任何一个
/a[abc]q/
正确:aaq,abq,acq
错误:abbq
2)范围
/[a-z]/i:a至z之间的任意一个字母,i 不区分大小写
/[0-9]/: 0至9之间的任意一个数字
/[a-z0-9]/:匹配一个字符,a至z之间小写字母或0至9之间的数字
[3-59] [3-5 9]:匹配一个数字,3至5之间的数字或数字9
3)排除
[^a-z0-9]:匹配一个字符,a至z或0至9之外的字符
7、 量词一对大括号{ }
{n} /a{6}/ /\d{11}/ :匹配n个字符
{n,m} /\d{5,12}/:匹配5至12个字符
{n,} /\w{6,}/:至少6个字符,多了不限
+ 等价于 {1,} :至少一个,多了不限
? 等价于{0,1} :有且仅有一个
. : 任意字符
示例:
/\.jsx?/ :匹配: .js .jsx
/a.{3,20}z/: 匹配: a 任何字符5-18 z
正确:a#5678#z
正确:a123456z
正确:a2wewrjkjl8934&*z
8、修饰符即条件
^ 行首
$ 行尾
示例:
/\.js/ 1.js.png 1.html.js.png.ccc 符合规则,但显然不是我们需要的结果
/\.js$/i 1.js 1231.txt.js 正确
/^https?:\/\// 正确
9、优先级
使用圆括号( )提示优先级
let re=/\.(jpg|gif|png)$/i;
// const str = 1.Png; // 通过
// const str = 2.jpg; // 通过
const str = 3.GIF; // 通过
if(re.test(str)){
alert('通过');
}else{
alert('不对');
}