首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么使用替换时javascript只替换第一个实例?

为什么使用替换时javascript只替换第一个实例?
EN

Stack Overflow用户
提问于 2009-12-28 05:39:56
回答 2查看 138.9K关注 0票数 176

我有这个

 var date = $('#Date').val();

这将获取文本框中的值,如下所示

12/31/2009

现在我在它上面做这个

var id = 'c_' + date.replace("/", '');

结果就是

c_1231/2009

它遗漏了最后一个'/‘,我不明白为什么。

EN

回答 2

Stack Overflow用户

发布于 2009-12-28 07:13:07

与C#/.NET类库(以及大多数其他合理的语言)不同的是,当您将String作为字符串匹配参数传递给string.replace方法时,它不会进行字符串替换。它将字符串转换为RegExp并执行正则表达式替换。正如Gumbo解释的那样,正则表达式替换需要g‍全局标志,该标志在默认情况下不是打开的,以一次性替换所有匹配。

如果您想要一个真正的基于字符串的匹配,例如,因为 - -string是动态的,并且可能包含在regexen - 中具有特殊含义的字符,那么JavaScript成语是:

var id= 'c_'+date.split('/').join('');
票数 82
EN

Stack Overflow用户

发布于 2016-06-24 22:33:42

您可以使用:

String.prototype.replaceAll = function(search, replace) {
if (replace === undefined) {
    return this.toString();
}
return this.split(search).join(replace);
}
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1967119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档