我需要删除除了破折号以外的所有非数字字符。这是我的尝试(基于:正则表达式获取除逗号、破折号和单引号之外的所有字母数字字段):var stripped = mystring.replace(/[-0-9]+/g, ''); 但那样不起作用 :-(
我建议:var stripped = string.replace(/[^0-9\-]/g,''); JS Fiddle演示。 字符类中的^(在[和]之间)是NOT运算符,因此它匹配的是不是0-9或(转义后的)-字符的字符。 正如在Ted Hopp对这个答案的评论中所提到的那样,当-是最后一个字符时,不需要对其进行转义,但我一般都这么做是为了避免记忆这个规定。 参考资料: JavaScript正则表达式。
-
呢?它也不能匹配。 - Ted Hopp