正则表达式用于匹配字符串,通常用来判断用户输入数据是否合法。
正则基础:
\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$表示必须以数字结束(注意$是在后面)