从字符串中删除字符
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 方法从另一个字符串中生成字符串...如果您的字符串已定义长度并且您删除的字符位于字符串的任一端,这将很有用。 .或在字符串的某个“静态维度”内。
【讨论】:
以上是关于从字符串中删除字符的主要内容,如果未能解决你的问题,请参考以下文章