正则表达式,全称“Regular Expression”,在代码中常简写为regex、regexp或RE。正则表达式,就是用某种模式去匹配一类字符串的公式
2.隐式定义
b. var 变量名=/这里写入正则表达式内容/gi
c. 隐式定义是最常用的方式,建议大家以后都使用这种方式定义正则表达式,//间包围正则的规则,/外的g确定正则的匹配规则是全局,i确定正则的部分大小写进行匹配.
显示定义 :var re=new RexExp("[0-9]");
隐式定义: var re=/[0-9]/g
上述两种是等价的匹配0-9的一个数字
语法:
正则.test(目标字符串)
定义一个正则 var re=/[0-9]/g;
if(re.test('0')){
alert('合法 的数组')}
返回是一个布尔值.常用test()匹配正则是否能够进行匹配.
正则匹配校验网站:正则匹配校验 .右侧有语法参考
元字符 | 说明 |
---|---|
\d | 匹配0-9的数字,相当于[0-9] |
\D | 匹配非数字,相当于[^0-9] |
\w | 匹配字母或数字或汉字或下划线 |
\W | 匹配不是字母或数字或汉字或下划线的字符 |
\s | 匹配任意的空白符,如空格、换行符、制表符等 |
\S | 匹配非空白符的字符 |
. | 匹配除了换行符以外的任意字符 |
[....] | 匹配空格的字符 |
[^...] | 匹配括号内容之外的字符 |
举例1:
var re=/\d/;匹配任意的0-9的任意一个数字
举例2:
var re=/[0-9]/;匹配0-9的任意数字
var re=/[a-z]/;匹配a-z的任意小写字母
匹配3:
var re=/[^a-z]/;匹配a-z之外的任意字符
连接符 | 说明 |
---|---|
[0-9] | 匹配数字,等价于\d |
[a-z] | 匹配英文小写字母 |
[A-Z] | 匹配英文大写字母 |
[0-9A-Za-z] | 匹配数字或英文字母 |
[0-9]匹配0,1,2,3,4,5,6,7,8,9;[a-z]匹配a-z的任意小写字母
什么是限定符?
限定符,就是限定某个或某类字符出现的次数
限定符 | 说明 |
---|---|
+ | 重复1次或更多次 |
* | 重复0次或更多次(任意次数) |
? | 重复0次或1次 |
{n} | 重复n次 |
{n,m} | 重复n次到m次(最少n次) |
{n,} | 重复n次或更多次(最少n次) |
举例1:
var re=/[0-9]{3}/匹配3个0-9的数字
var re=/[0-9]+/匹配0-9最少一个多则不限
定位符 | 说明 |
---|---|
^ | 定位开始位置字符 |
$ | 定位结束位置字符 |
\b | 定位单词(汉字)边界的字符 |
\B | 限定非单词(字)边界的字符 |
举例1:
var re=/ok\b/ 匹配ok结尾的,可以匹配imok ok拉 哇ok拉 但是不匹配okk imokk \b是匹配单词或者汉字边界
举例2:
var re=/ok\B/ 匹配单词或者汉字边界不是ok的字符,不匹配imok ha 可以匹配ABCoka 和用法相反,不匹配
^说明:^出现在开始是标准匹配的开始;出现在[^...]的^表示不匹配方括号内的字符起否定作用.
举例3:
var re=/^[A]/ 表示匹配开头的一个字符是大写A
var re=/[^A]/ 表示匹配不是A的字符
正则表达中出现两种字符:①普通字符;②特殊字符如(^,${})等
当我们需要匹配这些特殊字符就需要用到转义,
举例:(当我们需要匹配$abc这个字符串)
var re=/\$abc/ 在需要转义的字符前加斜线(\),匹配双反斜线 \\
需要转移的特殊字符:$、(、)、*、+、.、[、]、?、、/、^、{、}、|
正则表达式中使用()进行分组.
举例:
①/(abc){2}/
②/[abc]{2}/
③/(a[h-n]){2}/
解释:①(abc)为一组表示匹配abcabc
②表示a,b,c其中任意的一个字符匹配两次
③表示ah-an为一组,且这个组重复2次
选择符,很简单。在正则表达式中,选择符是“|”,用于选择匹配2个选项之中的任意一个,类似JavaScript中的“或”运算.
举例:
var re=/[a|b|c|d]/表示匹配a,b,c,d的任意一个字符
注释在之前很熟悉了,正则注释也一样帮助我们更好的去理解正则添加的标注内容
(?#这里是注释部分)
说明:如果要在正则表达式中包含注释,则最好打开“忽略模式里的空白符”选项。因此,此时可以在注释中添加空格、换行符号、制表符号等。一旦启用了该选项,即符号#之后的内容会全部被忽略掉。
在之前学习的php,JavaScript,c等语言的运算符部分出现了运算符的优先级定义了运算符的运算顺序,这里正则也有专属 的优先级.
运算符或表达式 | 说明 |
---|---|
\ | 转义字符 |
()、(?:)、(?=)、[] | 圆括号或方括号 |
*、+、?、{n}、{n,}、{n,m} | 限定符,定义规则的量 |
^、$、、B | 定界符,位置边界 |
| | 选择符,或计算 |