删除字符串中的字符
在正则表达式中使用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, '');
我知道这是旧的,但如果你做一个分割,然后加入它会删除特定字符的,即所有出现:
var str = theText.split('A').join('')
会从字符串中删除“A”的所有出现,显然,这是不区分大小写
这不是一个in-place函数,所以你必须执行`theText = theText.split('A')。join('')`才能工作。此命令对于括号等奇数字符特别有用。 – cameronroytaylor 2016-07-06 18:26:34
ONELINER它(一次一个以上)删除字符LIST - 例如从电话号码删除+,-, ,(,)
:
var str = "+(48) 123-456-789".replace(/[-+()\s]/g, ''); // result: "48123456789"
我们使用正则表达式[-+()\s]
我们把[
和]
之间不必要的字符( “\s
”是'空格'字符转义 - 更多信息google'字符在正则表达式中逃脱')
另一种迄今为止没有人讨论过的方法是substr方法从另一个字符串中产生字符串...如果字符串定义了字符串的长度,并且字符串的任意一端或字符串的某个“静态维度”内的字符都被删除,这将非常有用。
很好的答案。顺便说一句,`str.replace('g','b');`本身不起作用。使用`str = str.replace('g','b');`会使答案更好。 – Yuci 2016-02-29 12:45:47