我试图使用这段代码用_替换空格,它适用于字符串中的第一个空格,但所有其他空格的实例保持不变。有人知道为什么吗?

function updateKey()
{
    var key=$("#title").val();
    key=key.replace(" ","_");
    $("#url_key").val(key);
}

当前回答

Try .replace(/ /g,"_");

编辑:或.split(' ').join('_')如果你不喜欢REs

编辑:John Resig说:

如果你在搜索和替换 通过一个字符串进行静态搜索 而一个静态替换它更快 使用 .split(“匹配”). join(“替换”) 这似乎违反直觉,但是 大多数情况下都是这样 现代浏览器。(有变化 在适当的地方大大改善 .replace(/match/g, “替换”)的下一个版本 Firefox -前面的陈述 这种情况不会持续太久。)

其他回答

我为它创建了JS性能测试http://jsperf.com/split-and-join-vs-replace2

Try .replace(/ /g,"_");

编辑:或.split(' ').join('_')如果你不喜欢REs

编辑:John Resig说:

如果你在搜索和替换 通过一个字符串进行静态搜索 而一个静态替换它更快 使用 .split(“匹配”). join(“替换”) 这似乎违反直觉,但是 大多数情况下都是这样 现代浏览器。(有变化 在适当的地方大大改善 .replace(/match/g, “替换”)的下一个版本 Firefox -前面的陈述 这种情况不会持续太久。)

只需使用replace: var text = 'Hello World'; New_text = text。Replace (' ', '_'); console.log (new_text);

你可以试试这个

 var str = 'hello     world  !!';
 str = str.replace(/\s+/g, '-');

它甚至会用单个的“-”替换多个空格。

试试这个:

key=key.replace(/ /g,"_");

它会做全局查找/替换

javascript替换