首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >myString.replace(变量,"") ......但在全球范围内

myString.replace(变量,"") ......但在全球范围内
EN

Stack Overflow用户
提问于 2012-04-13 14:14:39
回答 4查看 71.4K关注 0票数 49

如何使用变量从字符串中删除子字符串的所有实例?(要删除,我认为最好的方法是全局替换,什么都不做……对吧?)

如果我有这两个字符串,

代码语言:javascript
复制
myString = "This sentence is an example sentence."
oldWord = " sentence"

然后是这样的东西

代码语言:javascript
复制
myString.replace(oldWord, "");

仅替换字符串中变量的第一个实例。

但如果我像这样添加全局g,它就不起作用了,因为它认为oldWord,在本例中,是子字符串,而不是变量。我如何使用变量来实现这一点?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-04-13 14:17:25

你可以使用这个:

代码语言:javascript
复制
var reg = new RegExp(oldWord, "g");
myString.replace(reg, "");

或简称:

代码语言:javascript
复制
myString.replace(new RegExp(oldWord, "g"), "");
票数 91
EN

Stack Overflow用户

发布于 2012-04-13 14:19:36

在传递变量时,必须使用构造函数而不是文字语法。坚持使用文字字符串的文字语法,以避免混淆转义语法。

代码语言:javascript
复制
var oldWordRegEx = new RegExp(oldWord,'g');

myString.replace(oldWordRegEx,"");
票数 12
EN

Stack Overflow用户

发布于 2017-01-24 04:57:38

这里不需要使用正则表达式:在要删除的子字符串的匹配项周围拆分字符串,然后将其余部分连接在一起:

代码语言:javascript
复制
myString.split(oldWord).join('')

在OP的示例中:

代码语言:javascript
复制
var myString = "This sentence is an example sentence.";
var oldWord = " sentence";
console.log(myString.split(oldWord).join(''));

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10136097

复制
相关文章

相似问题

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