用“+”replacestring中的所有空格
我有一个包含多个空格的string。 我想用一个加号代替它们。 我以为我可以使用
var str = 'ab c'; var replaced = str.replace(' ', '+');
但它只取代第一次出现。 我怎样才能取代所有的事件?
这是一个不需要regex的替代方法:
var str = 'ab c'; var replaced = str.split(' ').join('+');
您需要/g
(全局)选项,如下所示:
var replaced = str.replace(/ /g, '+');
你可以在这里试试 。 与大多数其他语言不同,默认情况下,JavaScript只会replace第一次出现。
var str = 'ab c'; var replaced = str.replace(/\s/g, '+');
你也可以这样做
str = str.replace(/\s/g, "+");
看看小提琴: http : //jsfiddle.net/aC5ZW/
在string中使用全局search。 克旗子
str.replace(/\s+/g, '+');
来源: replaceAll函数
用g
修饰符使用正则expression式:
var replaced = str.replace(/ /g, '+');
从JavaScript和ActionScript使用正则expression式 :
/ g启用“全局”匹配。 使用replace()方法时,指定此修饰符来replace所有匹配项,而不是仅replace第一个匹配项。
你需要找一些replaceAll选项
str = str.replace(/ /g, "+");
这是做一个replaceAll的正则expression式的方法。
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; };
非破碎的空间问题
在一些浏览器中
(MSIE“通常”;-))
replacestring中的空格将忽略非分隔空间(160个字符代码)。
应该总是这样replace:
myString.replace(/[ \u00A0]/, myReplaceString)
非常好的详细解释:
http://www.adamkoch.com/2009/07/25/white-space-and-character-160/
做这个recursion:
public String replaceSpace(String s){ if (s.length() < 2) { if(s.equals(" ")) return "+"; else return s; } if (s.charAt(0) == ' ') return "+" + replaceSpace(s.substring(1)); else return s.substring(0, 1) + replaceSpace(s.substring(1)); }