2011-08-06 123 views
17

我想刪除字符串i.E中的所有字符,如[]&。 : 「[富] &欄」 - > 「富巴」javascript刪除字符串中所有出現的字符

我不想叫更換3次,有更簡單的方式不僅僅是編碼:

var s="[foo] & bar";

s=s.replace('[','');

s=s.replace(']','');

s=s.replace('&','');

回答

36

Regular expressions [xkcd](我覺得像他;)):

s = s.replace(/[\[\]&]+/g, ''); 

參考:

旁註

JavaScript的replace函數只取代首次出現的一個字符。所以即使你的代碼不會取代所有的字符,只是每個字符的第一個。如果要替換所有匹配項,則必須使用正則表達式g lobal修飾符

+0

非常感謝! btw:xkcd漫畫很有趣:)是否有可能甚至刪除'[foo]&bar'中的'bar'我認爲那不會是/ [/ [/ [/]&(bar)] +/g – Sonnenhut

+0

@ gluca:不客氣:) –

+0

刪除'bar'的問題:正則表達式是'/ [\ [\]&] + | bar/g' – Sonnenhut

相關問題