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