2014-05-19 124 views
0

我不想使用拆分或连接。只替换第一个子元素

var str = "cause variety of files"; 
alert(str.replace(" " , "_")); 

上述输出的代码:"cause_variety of files"

我寻求的输出是:"cause_variety_of_files"

+0

@JoaoPalma - 你是对的。我问没有使用拆分,并加入阅读问题第一 –

+0

与正则表达式的解决方案也存在,如果你看到答案与最upvotes –

+0

哦,是的。谢谢你的信息。 –

回答

3

尝试此代码:

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

缺省情况下,replace函数替换中第一次出现。所以你必须使用RegExp和global标志。

您可以了解更多关于常客表达式在这里:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions

+1

“你必须使用正则表达式”肯定没有解释正则表达式的作用。你应该多解释一下。 –

+0

你能解释它是如何工作的吗? –

+0

我刚刚编辑我的回答 – Magus

0

尝试一下本作多个空间

str.replace(/\s+/g,'_'); 

或空单

str.replace(/\s/g,'_'); 
+3

'试试这个'不教给提问者什么。请解释你做了什么,为什么它应该工作,否则这不是一个好的答案。 –

0

尝试使用正则表达式和replace()功能:

$(document).ready(function() { 
    var elem = "cause variety of files"; 
    console.log(elem.replace(/\s+/g, '_')); 
}); 

正则表达式使用\ s +模式获取所有空格(1或更多),并将其替换为您喜欢的字符串。 在你的情况下一个下划线。

+1

您不应该像调试语句那样使用'alert()'。 'console.log()'应该用于调试(也因为你可以在开发工具中使用断点,如果你需要暂停执行)。也请解释你的正则表达式的作用 –