-
量词:
我们希望匹配一个出现20次数字的字符串---\d\d\d\d\\d\d\d\\d\d\d\d\d\d\d\d\d\d\d\d\d
等价于\d{20}
? 出现零次或一次(最多出现一次)
+ 出现一次或多次(至少出现一次)
* 出现零次或多次(任意次)
{n} 出现n次
{n,m} 出现n到m次
{n,} 至少出现n次
\d{20}\w\d?\w+\d*\d{3}\w{3,5}\d{3}
查看全部 -
预定义类:正则表达式提供预定义类来匹配常见的字符类
查看全部 -
范围类:[0123456789]
变为[0-9]
包含0和9本身,表示的是从0到9的任意一个字符
在[ ]组成的类内部可以连写[a-zA-Z]
查看全部 -
单斜杠"/"是JavaScript语言中正则表达式的标志,也就是说只有前后加了"/",JavaScript引擎才会确认斜杠中间的内容是一个正则表达式,并执行相应语句。这就好像写了"//",JavaScript引擎才知道后面是注释,不用执行。
字符类:我们可以用元字符[]来构建一个简单的类
所谓类是指符合某些特征的对象,一个泛指,而不是特质某个字符
表达式[abc]把字符a或b或c归为一类,表达式可以匹配这样的字符
字符类取反
使用元字符^ 创建 反向类或负向类
反向类的意思是不属于某类的内容
表达式[^abc]表示不是字符a或b或c的内容
查看全部 -
正则表达式由两种基本字符类型组成
1.原义文本字符:代表它原来含义的字符 例如:abc、123
2.元字符:在正则表达式中有特殊意义的非字母字符 例如:\b表示匹配单词边界,而非\b
在正则表达式中具体特殊含义的字符:* + ? $ ^ . \ () {} []
元字符:\t:水平制表符
\v:垂直制表符
\n:换行符
\r:回车符
\0:空字符
\f:换页符
\cX:与X对应的控制字符(Ctrl+X)
查看全部 -
两个//之间
修饰符:g 全局 i 忽略大小写 m多行搜索
元字符:有特殊含义的字符()
[]或者;^取反;
范围类-(可以连写[a-zA-Z])
预定义类:.任意字符[^\r\n]
边界单词:\b单词边界 ^以X开始 $以X结束
量词:连续出现n次: ?0次或1次,+一次或多次,*0次或多次,{n}n次,{n,m}n到m次{n,}至少n次
贪婪模式(默认):尽可能多,非贪婪模式:量词后加?:{2,6}?
分组:()
或:| 默认把这个表达式分开,局部或用分组即可( | )
反向引用:分组() 结合 $n
例: '2015-12-25'.replace(/(\d{4})-(\d{2})-(\d{2})/g,'$2-$3-$1') --> 12-25-2015
忽略分组(不捕获):分组内加 ?: 例:(?: )
d 数字
\b单词边界
{}量词 ()分组[]或者
^开头 $结尾
$2 取匹配结果的第N组
查看全部 -
正则表达式source属性:代表正则表达式的文本字符串
查看全部 -
lastIndex :是当前表达式匹配内容的最后一个字符的下一个位置
查看全部 -
正则表达式的量词
查看全部 -
匹配边界字符
查看全部 -
常见的元字符含义, 点.代表除了回车符和换行符之外的所有字符
查看全部 -
不常用的元字符,主要是跟空格有关
查看全部 -
test(str): 检验是否存在匹配的字符串,找到一个就返回true,并不再往后找了,没找到就返回false。对正则对象无影响。
exec(str): 搜索匹配的字符串,最后返回一个数组(每一个元素里包括匹配文本,第一个字表达式匹配文本,第二个子表达式匹配文本。。。。),没找到则返回null。每匹配一次就更新正则对象属性(index:匹配文本的第一个字符的下标, input:被匹配的字符串)
非全局:lastIndex被忽略,永远从第一个字符开始检查
全局:拥有lastIndex,并在每一次搜索会发生改变。当匹配字符串的最后一个字符是整个字符串的最后一个时,lastIndex会成为0,这就是全局的test为什么出现false的原因。
查看全部 -
正则表达式的JS对象
global
ignoreCase
multiline
lastIndex
source
查看全部 -
// 正则表达式的前:文本尾部 // 正则表达式的后:文本头部 // 前瞻: 正则表达式匹配到规则时,向前检查,是否符合断言。 // 后顾/后詹:正则表达式匹配到规则时,向后检查,是否符合断言。 JS不支持后顾 // 肯定匹配/正向匹配:符合特定断言 expression: ?= // 否定匹配/负向匹配:不符合特定断言 expression: ?! 'a2*34vv'.replace(/\w(?=\d)/g, 'X') // 'X2*X4vv' 'a2*34vv'.replace(/\w(?!\d)/g, 'X') // 'aX*3XXX'
查看全部
举报