Dav*_*Dev 317 javascript string
我有一个包含多个空格的字符串.我想用加号替换它们.我以为我可以用
var str = 'a b c';
var replaced = str.replace(' ', '+');
Run Code Online (Sandbox Code Playgroud)
但它只取代了第一次出现.如何让它替换所有出现的?
Dag*_*bit 471
这是一个不需要正则表达式的替代方案:
var str = 'a b c';
var replaced = str.split(' ').join('+');
Run Code Online (Sandbox Code Playgroud)
Nic*_*ver 456
你需要/g(全局)选项,如下所示:
var replaced = str.replace(/ /g, '+');
Run Code Online (Sandbox Code Playgroud)
你可以在这里尝试一下.与大多数其他语言不同,默认情况下,JavaScript仅替换第一次出现的语言.
epa*_*llo 88
var str = 'a b c';
var replaced = str.replace(/\s/g, '+');
Run Code Online (Sandbox Code Playgroud)
Jit*_*oli 60
你也可以这样做
str = str.replace(/\s/g, "+");
Run Code Online (Sandbox Code Playgroud)
看看小提琴:http://jsfiddle.net/aC5ZW/
小智 25
在字符串中使用全局搜索.g标志
str.replace(/\s+/g, '+');
Run Code Online (Sandbox Code Playgroud)
source:replaceAll函数
Mar*_*ers 23
使用带g修饰符的正则表达式:
var replaced = str.replace(/ /g, '+');
Run Code Online (Sandbox Code Playgroud)
从使用正则表达式与JavaScript和ActionScript:
/ g启用"全局"匹配.使用replace()方法时,请指定此修饰符以替换所有匹配项,而不是仅替换第一个匹配项.
您需要查找一些replaceAll选项
str = str.replace(/ /g, "+");
Run Code Online (Sandbox Code Playgroud)
这是执行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;
};
Run Code Online (Sandbox Code Playgroud)
在某些浏览器中
(MSIE"通常";-))
替换字符串中的空格会忽略不间断的空格(160字符代码).
一个人应该总是这样替换:
myString.replace(/[ \u00A0]/, myReplaceString)
Run Code Online (Sandbox Code Playgroud)
很好的详细解释:
http://www.adamkoch.com/2009/07/25/white-space-and-character-160/