我要的只是去掉一個字符串中的所有數字。簡單的JavaScript正則表達式去除條形碼
所以
var foo = "bar01";
alert(foo.replace(/\d/,''));
,因爲我只指定一個數字,這顯然給了 「BAR1」。那麼,爲什麼不這項工作:
var foo = "bar01";
alert(foo.replace(/\d*/,''));
其中給出 「bar01」
我要的只是去掉一個字符串中的所有數字。簡單的JavaScript正則表達式去除條形碼
所以
var foo = "bar01";
alert(foo.replace(/\d/,''));
,因爲我只指定一個數字,這顯然給了 「BAR1」。那麼,爲什麼不這項工作:
var foo = "bar01";
alert(foo.replace(/\d*/,''));
其中給出 「bar01」
您必須添加global
選項
var foo = "bar01";
alert(foo.replace(/\d/g,''));
顯然,你甚至可以做這樣的事情
var foo = "bar01";
alert(foo.replace(/\d+/g,''));
但我不知道它會不會更快(並且最終速度的差異將會是非常非常非常小,除非你解析兆字節的文本)
如果你想測試http://jsperf.com/replace-digits第二個似乎是更快的10位數字和大文本的「斑點」。
你可能想指定g
標誌:foo.replace(/\d/g,'')
alert(foo.replace(/\d+/g,''));
嘗試 '全局' 標誌:
foo.replace(/\d*/g,'')
已經找到了答案,這是'.'而不是'*' – jdborg
不幸的不是。你所提到的將在特定的「bar01」情況下工作,因爲你說匹配一個數字後面跟着任何字符。這不會刪除字符串末尾的數字,或者最多超過2位等。請參閱其他解決方案以獲得更好的解決方案。 – GregL