我试图仅过滤数字和-
。每当用户输入任何不是数字而不是连字符/破折号的东西时,应该删除它。我有正则表达式[0-9\-]
但它不起作用。我知道它错了,但我真的很新。
播放帮助。
答案 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_\\-]+)$");