方法
捕获reg.exec(str)
- exec只能捕获一次 如果没有符合的返回null
匹配reg.test(str)
- 此方法仅仅是检查是否能够匹配,匹配成功返回true,不成功返回false
match 字符串的方法
匹配正则表达式,将符合条件的返回成数组
- str.match(ref)—于正则表达式的exec方法类似,该方法同样返回一个数组,返回值上也有input和index属性
replace
2个参数,第一个参数是替换的字符(也可以是正则),第二个参数:被替换的字符或者函数,如果第二个参数是函数那在没有分组的情况有3个默认的值,1,找到的字符串,2,找到是索引位置3,原本字符串
元字符
修饰符
i
忽略大小写g
全局匹配m
表示行首和行尾
任何一个字符都可以是元字符
?
号出现在量词元字符的后面表示取消正则的贪婪模式{n}
匹配固定的N个{m,n}
匹配最少M个,最大N个{n,}
表示最少匹配N个,最多不限制- 综合
*
表示0次或者多次,等同于{0,} +
表示一次或者多次,等同于{1,}?
表示0次或者1次,等同于{0,1}- 表示位置
^
(开头)$
(结尾) -> /^(开头) $(结尾)/ .
会匹配字符串中除了换行符\n之外的所有字符|
正则表达式中的或,把"|"左右两边的一到多个字符当成一个整体对待[]
表示去中括号中的任意一个字符[^]
表示除了以中括号的字符的任何一个字符- 边界与非边界
\b
表示边界的意思,也就是说,只有字符串的开头和结尾才算数 - 数字与非数字
\d
表示数字的意思。\D
表示非数字的意思 - 空白
\s
包括空格回车制表字符。\S
表示非空格字符 - 单字符
\w
表示单词字符,等同于字符集合[a-zA-Z0-9]。\W
:表示非单词字符等效于[^a-zA-Z0-9]。
正则的贪心于非贪心
正则是贪婪的,能匹配多个是时候不会去匹配少个的,如果我们想要尽量少匹配的时候,在表示数字的后面加个?号,就表示非贪婪匹配
分组和分组的引用
()
除了是子正则外,还是分组的意思 ()出现的正则就是代表一个分组,如果后面用到我们直接的\数字(第几个分组)就代表直接用了。
var str=“woow”;//foof dood abba abca
var reg=/^(\w)(\w)\2\1$/;//出现在第三个位置的要和第二个一样 出现在第四个位置的要 和第一个样。
RegExp.$1 就是指正则的第一个分组,依次类推。
(?:)
表示只匹配,不捕获。(pattern)
匹配pattern并获取这一匹配。(?:pattern)
匹配pattern但不获取匹配结果。(?=pattern)
正向预查,在任何匹配pattern的字符串开始处匹配查找的字符串,这是一个非- 获取匹配,也就是说该匹配不需要获取供以后使用。(?=pattern)
负向预查,在任何不匹配pattern的字符串开始处匹配查找的字符串,这是一个非获取匹配,也就是说该匹配不需要获取供以后使用。