2011-01-31 118 views

回答

3

您可以使用replace函数。

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

在正则表达式中使用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, ''); 
+1

很好的答案。顺便说一句,`str.replace('g','b');`本身不起作用。使用`str = str.replace('g','b');`会使答案更好。 – Yuci 2016-02-29 12:45:47

3

我知道这是旧的,但如果你做一个分割,然后加入它会删除特定字符的,即所有出现:

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

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

+1

这不是一个in-place函数,所以你必须执行`theText = theText.split('A')。join('')`才能工作。此命令对于括号等奇数字符特别有用。 – cameronroytaylor 2016-07-06 18:26:34

14

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

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

我们使用正则表达式[-+()\s]我们把[]

之间不必要的字符( “\s”是'空格'字符转义 - 更多信息google'字符在正则表达式中逃脱')

2

另一种迄今为止没有人讨论过的方法是substr方法从另一个字符串中产生字符串...如果字符串定义了字符串的长度,并且字符串的任意一端或字符串的某个“静态维度”内的字符都被删除,这将非常有用。