您的位置:首页 > Web前端 > JavaScript

js正则表达式中的match、exec、replace【转载】

2016-02-24 15:53 393 查看
首先废话一下,每次遇到这三个,都要去网上搜搜。今天先记下来。以便对比。

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的函数功能很强大很强大。哎。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: