Javascript 为什么str.replace()只替换第一个找到的项?

Javascript 为什么str.replace()只替换第一个找到的项?,javascript,replace,Javascript,Replace,我预计结果是123,但实际上是12/3 为什么?添加全局选择g标志,并在第一个参数中使用正则表达式而不是字符串 text = "1/2/3" result = text.replace("/", ""); 可以使用正则表达式作为参数来替换为全局选择 result = text.replace(/\//g, ""); 您可以尝试下面的Regexp a = "1/2/3" a =a.split("/").join("") 这将用另一种方法替换所有/元素。: "1/2/3".replace(/\

我预计结果是123,但实际上是12/3
为什么?

添加全局选择g标志,并在第一个参数中使用正则表达式而不是字符串

text = "1/2/3"
result = text.replace("/", "");

可以使用正则表达式作为参数来替换为全局选择

result = text.replace(/\//g, "");

您可以尝试下面的Regexp

a = "1/2/3"
a =a.split("/").join("")

这将用另一种方法替换所有/元素。

"1/2/3".replace(/\//g,"");

这是一个很好的答案:@Kamafeather Thx可能是重复的,只是看看它,这正是我需要投票来结束我自己的问题的地方,因为它确实是重复的+1,以避免使用正则表达式并提高效率perf@Kaiido:为了提高性能,你为什么这么认为?它分配了一个额外的数组。@zerkms从这个答案@AdrianoRepetti Yep true,即将指向答案中的那个。Thanks@AdrianoRepettiregex参数是什么意思?@zerkms措辞拙劣,但第一个参数模式是regex。与Ahmad、Vishwanath和Felipe的答案相比,这有什么不同/更好?
"1/2/3".replace(/\//g,"");
String.prototype.replaceAll = function(matchStr, replaceStr) {
  return this.replace(new RegExp(matchStr, 'g'), replaceStr);
 };
var str = "1/2/3";
result = str.replaceAll('/', '');