3
我需要刪除除破折號之外的所有非數字字符。 這是我嘗試(基於:Regex to get all alpha numeric fields except for comma, dash and single quote):刪除除破折號之外的非數字字符
var stripped = mystring.replace(/[-0-9]+/g, '');
但是,這並不:-(
我需要刪除除破折號之外的所有非數字字符。 這是我嘗試(基於:Regex to get all alpha numeric fields except for comma, dash and single quote):刪除除破折號之外的非數字字符
var stripped = mystring.replace(/[-0-9]+/g, '');
但是,這並不:-(
工作,我建議:
var stripped = string.replace(/[^0-9\-]/g,'');
字符類中的^
(在[
和]
之內)是NOT運算符,因此它匹配char其中不是0-9
或(逃脫)-
字符的字符。
正如在本回答的評論中指出的那樣,通過Ted Hopp,當它是最後一個字符時,沒有必要跳過-
,但我習慣性地這樣做,以避免必須記住附帶條件。
參考文獻:
當它是班級中的最後一個字符時,不需要逃避破折號。另外,'0-9'可以被替換'\ d'。正則表達式可能是'/ [^ \ d - ]/g' – 2014-10-05 13:08:51
謝謝,我添加了紙條給答案,但正如也注意到,我總是逃避,以避免不必記住條件的破折號(它只有當它是最後一類時纔可以轉義)。我真的很懶......;) – 2014-10-05 13:14:47