2016-09-14 150 views
0

我有一些JS的简单.replace()函数的问题。替换为一个字符串,Javascript

这是我的代码

console.log(URL); 
    URL.replace("-","/"); 
    console.log(URL); 

这是我的输出:

folder1中-文件夹2-folder3 folder1中-文件夹2-folder3

第二个应该是

文件夹1/folder2/folder3

对不对?

如果你们从我的代码需要,请让我提前知道:)

感谢,

布拉姆

+1

[在JavaScript中替换所有出现的字符串]的可能重复(http://stackoverflow.com/questions/1144783/replacing-all-occurrences-of-a-string-in-java脚本)。 –

+0

[*“replace()'方法**返回一个新的字符串**,其中一部分或全部匹配替换为替换。”*](https://developer.mozilla.org/zh-CN/ docs/Web/JavaScript/Reference/Global_Objects/String/replace) – epascarello

回答

3

正确的做法是一个全球性的正则表达式与g正则表达式,在这种情况下是/-/

后更换
console.log(URL); 
URL = URL.replace(/-/g,"/"); 
console.log(URL); 
+0

嗯,它的工作,为什么没有Rajesh选项工作? 为什么它像你说的那样工作? “正则表达式”是做什么的? –

+0

正则表达式匹配模式和字符串'替换'方法,你可以用你想要的东西来替换任何事件,'g'正则表达式修饰符用来匹配所有的事件,而通常只替换第一个事件[检查这个] (http://www.w3schools.com/jsref/jsref_obj_regexp.asp) –

3

更换后,更换返回一个新字符串。它不会改变replace被调用的字符串。试试这个:

​​

要更换所有出现看看这个How to replace all occurrences of a string in JavaScript?

console.log(URL); 
URL = URL.replace(/-/g, '/'); 
console.log(URL); 
+0

一些进步,但现在我得到: folder1/folder2-folder3 –

+1

@ B.Wesselink你将不得不使用正则表达式。 'URL = URL.replace(/ -/g,“/”);' – Rajesh

+0

现在我得到一个“undefined” –