在JavaScript中用下划线replace空格?
我试图用这个代码来replace空格_,它用于string中的第一个空格,但所有其他空间的实例保持不变。 有人知道为什么?
function updateKey() { var key=$("#title").val(); key=key.replace(" ","_"); $("#url_key").val(key); }
尝试.replace(/ /g,"_");
编辑 :或.split(' ').join('_')
如果你厌恶RE
编辑 : 约翰Resig说 :
如果使用静态search和静态replace通过string进行search和replace,使用.split(“match”)执行动作的速度会更快。join(“replace”) – 这似乎违反直觉,但它能够工作在大多数现代浏览器中这种方式。 (在下一个版本的Firefox中,改变.replace(/ match / g,“replace”)的性能正在发生变化 – 所以前面的说法不会太长)。
尝试这个:
key=key.replace(/ /g,"_");
这将做一个全球性的查找/replace
JavaScriptreplace
回答Prasanna的问题如下:
如何用Javascript中的单个空间replace多个空格?
你将使用相同的函数replace
一个不同的正则expression式。 空格的expression式是\s
,“1次或更多次”的expression式是+
加号,所以你只需要用下面的代替Adam的答案:
key=key.replace(/\s+/g,"_");
我为它创build了JS性能testinghttp://jsperf.com/split-and-join-vs-replace2
你可以试试这个
var str = 'hello world !!'; str = str.replace(/\s+/g, '-');
它甚至会用单个“ – ”replace多个空格。
用下划线replace空格
var str = 'How are you'; var replaced = str.split(' ').join('_');
输出: How_are_you
我知道这是旧的,但我没有看到任何人提及扩展stringprototype
。
String.prototype.replaceAll = function(search, replace){ if(!search || !replace){return this;} //if search entry or replace entry empty return the string return this.replace(new RegExp('[' + search + ']', 'g'), replace); //global RegEx search for all instances ("g") of your search entry and replace them all. };