从字符串中删除字符

Posted

技术标签:

【中文标题】从字符串中删除字符【英文标题】:Remove characters from a string 【发布时间】:2011-06-18 07:59:56 【问题描述】:

有哪些不同的方法可以从 javascript 中的字符串中删除字符?

【问题讨论】:

这能回答你的问题吗? How can I remove a character from a string using Javascript? 【参考方案1】:

你可以使用replace函数。

str.replace(regexp|substr, newSubstr|function)

【讨论】:

【参考方案2】:

replace() 与正则表达式一起使用是最灵活/最强大的。这也是全局替换 JavaScript 中搜索模式的每个实例的唯一方法。 replace() 的非正则表达式变体只会替换第一个实例。

例如:

var str = "foo gar gaz";

// returns: "foo bar gaz"
str.replace('g', 'b');

// returns: "foo bar baz"
str = str.replace(/g/gi, 'b');

在后一个示例中,结尾的 /gi 表示不区分大小写和全局替换(意味着不应仅替换第一个实例),这是您在字符串中替换时通常想要的。

删除个字符,用空字符串代替:

var str = "foo bar baz";

// returns: "foo r z"
str.replace(/ba/gi, '');

【讨论】:

好答案。顺便说一句,str.replace('g', 'b'); 本身不起作用。使用str = str.replace('g', 'b'); 会使答案更好。【参考方案3】:

我知道这很旧,但如果你进行拆分然后加入,它将删除所有出现的特定字符,即:

var str = theText.split('A').join('')

将从字符串中删除所有出现的“A”,显然它不区分大小写

【讨论】:

这不是就地函数,因此您必须执行theText = theText.split('A').join('') 才能使其工作。此命令对方括号等奇数字符特别有用。 根据您的评论更新【参考方案4】:

ONELINER 删除字符 LIST(一次多个) - 例如从电话号码中删除 +,-, ,(,)

var str = "+(48) 123-456-789".replace(/[-+()\s]/g, '');  // result: "48123456789"

我们使用正则表达式 [-+()\s][] 之间放置不需要的字符

(“\s”是“空格”字符转义 - 更多信息谷歌“正则表达式中的字符转义”)

【讨论】:

您可以使用更简单、更强大的正则表达式来实现与电话号码示例相同的结果:var str = "+(48) 123-456-789".replace(/[\D]/g, ''); // result: "48123456789"【参考方案5】:

目前还没有人谈论过的另一种方法是 substr 方法从另一个字符串中生成字符串...如果您的字符串已定义长度并且您删除的字符位于字符串的任一端,这将很有用。 .或在字符串的某个“静态维度”内。

【讨论】:

以上是关于从字符串中删除字符的主要内容,如果未能解决你的问题,请参考以下文章

从字符串中删除字符

从R中的字符串中删除所有特殊字符?

使用javascript从字符串中删除字符

从字符串中删除多个子字符串 - Java

从字符串中删除前面的字符?

从字符串中删除字符直到另一个字符出现[关闭]