2011-09-09 208 views
2

我有一个字符串,我想用空字符串替换某些值。我的字符串是:Javascript字符串替换

"col1=,,,&col2=,&col3=,,&item5,item8," 

我试图取代“,,,”与‘’

我曾尝试以下,也没有喜悦,没有任何人有任何想法什么是最好的方式实现这一目标是什么?

var string = "col1=,,,&col2=,&col3=,,&item5,item8,"; 
var NewCookie = ""; 

NewCookie = string.replace(",,", ","); 
NewCookie = NewCookie.replace(',,,', ','); 
NewCookie = NewCookie.replace(',,&', ','); 

alert(NewCookie); 

感谢

+0

'&ITEM5,item8'不有效的查询字符串。你能澄清你想要的格式吗? –

+0

你可以显示结果你想要什么? –

回答

1

试试这个功能:

function RemoveConsecutiveCharacter(str, character){ 
    var newStr = ""; 

    $.each(str, function(index){ 
     if(str[index] != character || str[index-1] != character){ 
      newStr += str[index]; 
     } 
    }); 

    return newStr; 
} 

在这里看到一个例子:http://jsfiddle.net/expertCode/6naAB/

0

这个工作对我来说:

alert(("col1=,,,&col2=,&col3=,,&item5,item8,").replace(',,,',',')); 

编辑:啊,你设置NewCookie为 “” 那么你要替换NewCookie东西(也就是 “”),例如2和3. 你必须在你的例子中设置var NewCookie = string;
或做

var NewCookie = string.replace(',,,',','); 
0

您正在更换",,"","导致:

"col1=,,&col2=,&col3=,&item5,item8," 

因此,当你这样做:

NewCookie = NewCookie.replace(',,,', ','); 

不再有任何",,,"

尝试重新安排你的替换功能:

NewCookie = string.replace(',,,', ','); 
NewCookie = NewCookie.replace(",,", ","); 
NewCookie = NewCookie.replace(',&', ','); 
3

试试这个:

var result = "col1=,,,&col2=,&col3=,,&item5,item8,".replace(/,+&?/g,','); 

结果字符串是:"col1=,col2=,col3=,item5,item8,"

var result = "col1=,,,&col2=,&col3=,,&item5,item8,".replace(/=?,+&?/g,'=&'); 

结果字符串是:"col1=&col2=&col3=&item5=&item8=&"

var result = "col1=,,,&col2=,&col3=,,&item5,item8,".replace(/,+/g,','); 

结果字符串是:"col1=,&col2=,&col3=,&item5,item8,"

-1
while(str.indexOf(",,")!=-1){ 
    str = str.replace(",,",","); 
}