我正在尝试使用此代码用 _ 替换空格,它适用于字符串中的第一个空格,但所有其他空格实例保持不变。有人知道为什么吗?
function updateKey()
{
var key=$("#title").val();
key=key.replace(" ","_");
$("#url_key").val(key);
}
我正在尝试使用此代码用 _ 替换空格,它适用于字符串中的第一个空格,但所有其他空格实例保持不变。有人知道为什么吗?
function updateKey()
{
var key=$("#title").val();
key=key.replace(" ","_");
$("#url_key").val(key);
}
尝试 .replace(/ /g,"_");
编辑:或者.split(' ').join('_')
如果你厌恶 REs
编辑:John Resig 说:
如果您使用静态搜索和静态替换搜索和替换字符串,则使用 .split("match").join("replace") 执行操作会更快 - 这似乎违反直觉,但它设法工作在大多数现代浏览器中都是这样。(在下一个版本的 Firefox 中,有一些变化可以大大提高 .replace(/match/g, "replace") 的性能 - 所以之前的陈述不会持续很长时间。)
在下面回答Prasanna的问题:
如何在 Javascript 中用单个空格替换多个空格?
您将使用replace
具有不同正则表达式的相同函数。空格\s
的表达式是,“1 次或多次”的表达式是+
加号,因此您只需将 Adam 的答案替换为以下内容:
key=key.replace(/\s+/g,"_");
你可以试试这个
var str = 'hello world !!';
str = str.replace(/\s+/g, '-');
它甚至会用单个“-”替换多个空格。
我为它创建了 JS 性能测试http://jsperf.com/split-and-join-vs-replace2