注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

云淡风轻

云淡风轻近午天,傍花随柳过前川。

 
 
 

日志

 
 

javascript的字符串replace方法  

2008-03-15 17:49:21|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
在python里,replace接受3个参数,
replace( old, new[, count])
其中old和new是必须的,都是一个字符串。参数count表示最多把多少个old字符串替换成new字符串。文档是这样说的:
Return a copy of the string with all occurrences of substring old replaced by new. If the optional argument count is given, only the first count occurrences are replaced.

比如:
"a string for a test".replace("a", "the") ==> "the string for the test"
-------------------------------------------------------python | javascript 分割线----------------------------------

在javascript里的replace函数只有两个参数。

第一个参数可以是一个字符串或者一个正则表达式对象:
  1. "a string".replace("a", "the") ==> "the string"
  2. "a string".replace(/a/, "the") ==> "the string"
事实上,第一种写法的字符串,其实也就是一个正则表达式对象,相当于:

3. "a string".replace(new RegExp("a"), "the") ==> "the string"

和python不同的是:

"a string for a test".replace("a", "the") ==> "the string for a test"

第二个"a"并没有被替换。
其实也很容易理解,只要看一下上面,第一种写法和第三种写法是一样的。所以要全部替换的话,这么写:
"a string for a test".replace(/a/g, "the") ==> "the string for the test"
第二个参数,可以是一个字符串,如同上面所示的例子,而且可以用"\1"..."\9"来引用第一个参数里正则表达式中括号括起来的部分。

第二个参数也可以是一个函数,可以看到回调函数。
当在字符串里找到被替换的串时,这个函数就会被执行。函数将会接收到若干个参数,第一个参数是整个匹配到的串,接下来就是正则表达式里所有用(...)括起来的串了。
这个函数返回一个字符串,用来替换到匹配到的串。
看例子吧,说不清楚:
"a string for a test".replace(/a( str)/g, function(match, str){return "the"+str})
==>
"the string for a test"

"a string for a test".replace(/a( str| test)/g, function(match, str){return "the"+str})
==>
"the string for the test"

看一下John Resig这篇文章:查找但不替换(Search and Don't Replace)
也是用这个replace函数。很巧妙啊。

  评论这张
 
阅读(342)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017