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('不对');
}
网友评论