## 随便写写
平时工作会接触一些网页编程,少不了和Javascript打交道。个人非常喜欢这个语言。今天要讲的replace功能也确实非常吸引人。
Replace, 顾名思义就是替换,但是在Javascript里,replace能玩出花。请看下面的例子。
1. 普通替换
var a = "I am a good man."
a.replace("good","lucky")
=> a = "I am a lucky man"
这很容易理解。
2. 正则替换
var a = "I am a good man."
a.replace(/[am]{2}/g,"be")
=> a = "I be a good ben."
这里replace的第一个参数是一个正则表达式,有空写一篇有关正则表达式的文章。这里不详细展开。这里的意思是将字母 ‘a’ 和 ‘m’ 的组合都替换成 ‘be’。两者一结合就产生的效果。
这里顺便再多说一句
a.replace(/(am)(.+)(ma)/,"$3$2$1")
=> a = "I ma a good amn."
这里的$3是指匹配的第三组,也就是第3个 () 里的内容,同理 $2 和 $1 指第 2 个 和第 1 个匹配。而 $0 指的是整个匹配。
3.正则加匿名函数替换
var a = "I am a good man."
a.replace(/(am)(.+)(ma)/,function(a,b,c,d){
return d+c+b
})
=> a = "I ma a good amn."
有了上面的注释,我们可以理解一下,a就是$0, 同理 b,c,d 分别是上面的$1 $2 和 $3.
##总结
Javascript的replace真的很强大,可以符合各种苛刻的替换要求。