2011-01-31 172 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方法從另一個字符串中產生字符串...如果字符串定義了字符串的長度,並且字符串的任意一端或字符串的某個「靜態維度」內的字符都被刪除,這將非常有用。