正则表达式 - 如何过滤数字和“ - ”?

时间:2013-01-08 04:47:10

标签: javascript jquery regex

我试图仅过滤数字和-。每当用户输入任何不是数字而不是连字符/破折号的东西时,应该删除它。我有正则表达式[0-9\-]但它不起作用。我知道它错了,但我真的很新。

请参阅http://jsfiddle.net/nqdjZ/

播放帮助。

3 个答案:

答案 0 :(得分:2)

首先,new RegExp需要一个字符串;你应该使用文字/[0-9-]/代替。下一个问题是replace甚至不应该存在。另一个问题是你永远无法完全确定输入文本的位置 - 不要假设它在最后。这将严重惹恼人们。

改为使用<input type="number">,并在最后验证,而不是在有人打字时验证。

答案 1 :(得分:1)

试试这个正则表达式:

[^\d\-]+

并替换为空字符串。

解释

  

[^character_group] 的   否定:匹配character_group内没有的任何单个字符。

     

\d 的   匹配任何十进制数字。

     

+ 的   匹配前一个元素一次或多次。

     

\- 的   匹配-

和你的代码:

result = inputString.replace(/[^\d\-]+/g, "");

答案 2 :(得分:1)

更改正则表达式 -

var pattern = new RegExp("^([0-9_\\-]+)$");