今天暂时看了下正则表达式,做一下总结:
^:从字符串开头进行匹配
*:匹配前面那个字符的零到多次
.:匹配任意一个字符
+:匹配前面的那个字符的1到多次
$:从字符串末尾进行匹配
以上是最基本的5个,然后运用总结:
var reg1 = /[0-9]*/; reg1.exec("56565552"); 运行结果是:56565552
var reg2 = /[0-9]+/; reg2.exec("56565552"); 运行结果是:56565552
var reg3 = /[0-9]*/; reg3.exec("[56565552]"); 运行结果是:什么都没有
var reg4 = /[0-9]+/; reg4.exec("[56565552]"); 运行结果是:56565552
var reg5 = /^[0-9]*/; reg5.exec("[56565552]"); 运行结果是:什么都没有
var reg6 = /^[0-9]+/; reg6.exec("[56565552]"); 运行结果是:null
var reg7 = /.[0-9]+./; reg7.exec("[56565552]"); 运行结果是:[56565552]
var reg8 = /^.*5$/; reg8.exec("[56565552]"); 运行结果是:null
对于reg3,因为有了限定符 *,且*是0~n次,所以[0-9]*必须是开头就是数字而且在需要匹配的字符串里面数字是不用出现的(因为匹配0次),而字符串第一个是[,自然不匹配什么都没有
对于reg4,因为有了限定符+,且+是1~n次,所以[0-9]+在需要匹配的字符串里面数字已经出现过至少一次(开头不是必须是数字),它会把数字全部匹配道
对于reg6,因为有特殊字符^,所以开头就必须是数字自然就是null
对于reg8,我是如此理解,就是取交集:首先是开头任意开头结尾是5所以我们单个运行/^.*5/结果是"[5656555",接着.*5$其实就等于$.*5不过是从需要匹配的字符串末尾开始,那么需要匹配的字符串末尾是"]",因为结尾是5所以匹配不了为null,自然两者结合就是null(交集)。再举例:"/^.*]$/"(就是/^.*$/)其实结果就是"[56565552]",就很好理解了