2014-10-17 62 views
0

我尝试删除多个分号(;)替换为javascrpt中的单个分号(;)。在javascript中替换多个分号到单个分号

代码:

var test ="test1;;test2;;;test3;;;;test4;;;;test5;;;;;test6;;;;;;test7;;;;;;;test8;;;;;;;;test9" 
test.replace(";;",";") 

,但没有得到正确的输出(必须使用替换) 如果任何解决方案

我需要像输出:

test1;test2;test3;test4;test5;test6;test7;test8;test9 

回答

5

三个问题有:

  1. 作为第一个参数传递一个字符串到replace时,只会替换第一个匹配项。要进行全局替换,必须使用带有g标志的正则表达式。

  2. 如果它确实整个字符串,你只用;取代;;,所以如果你有;;;;你想最终;;(每两个被取代)。一个正则表达式在这里也有帮助,具体是/;+/g这意味着“一个或更多;字符,全局在字符串中。”

  3. replace不会更改您调用它的字符串,它返回带有更改的新字符串。要记住它的作用,你必须在某处指定结果。

所以:

test = test.replace(/;+/g, ';');