我有一个包含多个空格的字符串。我想用加号来代替。我想我可以用
var str = 'a b c';
var replaced = str.replace(' ', '+');
但它只替换了第一个事件。我怎么能让它替换所有的事件?
我有一个包含多个空格的字符串。我想用加号来代替。我想我可以用
var str = 'a b c';
var replaced = str.replace(' ', '+');
但它只替换了第一个事件。我怎么能让它替换所有的事件?
当前回答
你也可以这样做:
str = str.replace(/\s/g, "+");
看看这把小提琴。
其他回答
非间断空间问题
在某些浏览器中
(MSIE“照常”;-))
替换字符串中的空格会忽略不间断的空格(160字符代码)。
应该总是这样替换:
myString.replace(/[ \u00A0]/, myReplaceString)
非常好的详细解释:
http://www.adamkoch.com/2009/07/25/white-space-and-character-160/
这里有一个不需要regex的替代方案:
var str = 'a b c';
var replaced = str.split(' ').join('+');
var str = 'a b c';
var replaced = str.replace(/\s/g, '+');
你也可以这样做:
str = str.replace(/\s/g, "+");
看看这把小提琴。
您需要寻找一些replaceAll选项
str = str.replace(/ /g, "+");
这是一个执行replaceAll的正则表达式。
function ReplaceAll(Source, stringToFind, stringToReplace) {
var temp = Source;
var index = temp.indexOf(stringToFind);
while (index != -1) {
temp = temp.replace(stringToFind, stringToReplace);
index = temp.indexOf(stringToFind);
}
return temp;
}
String.prototype.ReplaceAll = function (stringToFind, stringToReplace) {
var temp = this;
var index = temp.indexOf(stringToFind);
while (index != -1) {
temp = temp.replace(stringToFind, stringToReplace);
index = temp.indexOf(stringToFind);
}
return temp;
};