首先废话一下,每次遇到这三个,都要去网上搜搜。今天先记下来。以便对比。

 
 
macth和exec都是匹配字符串中的内容,找到返回数组,找不到返回null,下面讨论有返回值的时候。
 
1、exec:
书写方式:  result = reg.exec(str)
str:字符串
reg:正则表达式。
result:返回值:
1)reg不带全局g的时候,result[0]表示匹配的整个文本,result[1]表示匹配的第一个子表达式,即第一个左括号括起来的内容;result[2]表示匹配的第二个子表达式,即第二个左括号括起来的内容。以此类推。
2)result.length :result的数组长度。
3)result.4)result.input 属性则存放的是被检索的字符串 string
5)带全局的g的时候比较复杂,也没有验证过。欢迎拍砖。
 
2、macth:
书写方式:  result = str.match(reg)   与exec和test相反。其实只要记住 一个就行:test是测试的意思,那么肯定是正则str测试字符串。即reg.test(str)或 reg.exec(str);
变量含义同exec
返回值:
1)不带全局g的时候,返回值跟exec相同。
关键是带全局g 的时候
i)返回与正则表达式匹配的所有子字符串。是子字符串,不是子表达式哦
ii)result.length返回结果数组的长度。即匹配的所有子字符串的次数。
 
 
3、replace:
repalce:
result = str.replace(reg,replacement);
replacement:替换的字符串或者函数。
如果是字符串的时候,这里就不多说了。重点说说函数的情况
函数有两各个参数:第一个是匹配的子字符串,第二个是匹配的每个子表达式。即括号括起来的子表达式。
 
以下是我在chrome下做的测试。驼峰形式的字符串转换成css形式的:
"mozArial".replace(/([A-Z])\w+/g,function(substr,submatch){
return "-"+submatch.toLowerCase()+substr.substring(1); })
 
结果:moz-arial
 
感觉这个repalce的函数功能很强大很强大。哎。。
 
posted on 2016-02-24 15:53  爱前端 为目标而奋斗  阅读(693)  评论(0编辑  收藏  举报