正则表达式用于匹配字符串,通常用来判断用户输入数据是否合法。
正则基础:
-
\d
匹配一个数字:
①`66\d`
能成功匹配`666`
,但无法匹配`66A`
,A是字母
②`\d\d\d`
可以成功匹配`666`
-
\w
匹配一个字母或数字:
`\w\w\w`
可以匹配`aaa`
-
\s
匹配一个空格,包括Tab等空白符 -
.
可以匹配任意字符:
`aa.`
可以匹配`aaa`
、`aa1`
、`aa!`
等等 -
匹配变长的字符时,使用
*
表示任意个字符(包括0个),+
表示至少一个字符,?
表示0个或者1个字符,{n}
表示n个字符,用{n, m}
表示n-m个字符
例子:\d{3}\s+\d{3,8}
分析:
1.\d{3}
表示匹配3个数字,
2.\s
表示匹配一个空格,+
表示至少一个,所以就是至少一个空格
3.\d{3-8}
表示3-8个数字
如果要将\s
换成-
呢?由于-
是特殊字符,所以需要\
转义,将正则表达式改为\d{3}\-\d{3,8}
即可
更为复杂的正则:
当需要使用更精准、复杂的正则的时候,就要用到[]
,它表示范围,比如:
①[0-9a-zA-Z\_]
可以匹配一个数字、字母或者下划线
②[0-9a-zA-Z\_]+
可以匹配至少由一个数字、字母或者下划线组成的字符串,比如`a100`
,`0_Z`
,`js666`
等等
③[a-zA-Z\_\$][0-9a-zA-Z\_\$]*
匹配一个由字母或下划线、$
开头,后接任意个由数字、字母或者下划线、$
组成的字符串,也就是JavaScript允许的变量名
④[a-zA-Z\_\$][0-9a-zA-Z\_\$]{0-19}
限制了变量长度是1-20,(因为[]
的范围作用,前面已有一个字符所以范围是0+1
到19+1
)
-
A|B
匹配A或者B
具体用法:
(J|j)ava(S|s)cript
可匹配`JavaScript`
、`Javascript`
、`javaScript`
或者`javascript`
-
^
表示行的开头,如:^\d
表示必须以数字开头 -
$
表示行的结束,如:\d$
表示必须以数字结束(注意$是在后面)
网友评论