-
匹配方法
test() 用于测试给定的字符串是否符合条件 true或false exec() 用于提取字符串 例:var re = /^(\d{3})-(\d{3,8})$/; re.exec('010-12345'); // ['010-12345', '010', '12345'] re.exec('010 12345'); // null 正则表达式中定义了组() exec()方法在匹配成功后,会返回一个Array,第一个元素是正则表达式匹配到的整个字符串, 后面的字符串表示匹配成功的子串。 exec()方法在匹配失败时返回null
-
基本匹配
.可以匹配任意字符 *表示任意个字符(包括0个) +表示至少一个字符 ?表示0个或1个字符 ^表示行的开头 ^\d表示必须以数字开头 $表示行的结束 \d$表示必须以数字结束 {n}表示n个字符 {n,}表示至少匹配n 次 {n,m}表示n-m个字符 []表示范围,更精确地匹配 ()表示的就是要提取的分组 | A|B可以匹配A或B \d可以匹配一个数字 \w可以匹配一个字母或数字 \s可以匹配一个空格
-
贪婪匹配
正则匹配默认是贪婪匹配,也就是匹配尽可能多的字符 var re = /^(\d+)(0*)$/; re.exec('102300'); // ['102300', '102300', ''] 由于\d+采用贪婪匹配,直接把后面的0全部匹配了,结果0*只能匹配空字符串了 必须让\d+采用非贪婪匹配(也就是尽可能少匹配),才能把后面的0匹配出来,加个?就可以让\d+采用非贪婪匹配 var re = /^(\d+?)(0*)$/; re.exec('102300'); // ['102300', '1023', '00']
-
全局搜索
g 全局搜素 i表示忽略大小写 m表示执行多行匹配
网友评论