我试图只过滤数字和-
. 每当用户输入任何不是数字且不是连字符/破折号的内容时,都应将其删除。我有正则表达式[0-9\-]
,但它不起作用。我知道这是错误的,但我对此真的很陌生。
请帮忙。
我试图只过滤数字和-
. 每当用户输入任何不是数字且不是连字符/破折号的内容时,都应将其删除。我有正则表达式[0-9\-]
,但它不起作用。我知道这是错误的,但我对此真的很陌生。
请帮忙。
首先,new RegExp
期望一个字符串;您应该改用文字/[0-9-]/
。下一个问题是它replace
甚至不应该存在。另一个问题是,您永远无法完全确定文本的输入位置——不要假设它在末尾。这会严重惹恼人们。
使用 an<input type="number">
代替,并在最后验证而不是在有人打字时验证。
试试这个正则表达式:
[^\d\-]+
并用空字符串替换。
解释:
[^character_group]
否定:匹配任何不在character_group
.
\d
匹配任何十进制数字。
+
匹配前一个元素一次或多次。
\-
火柴-
和你的代码:
result = inputString.replace(/[^\d\-]+/g, "");
更改正则表达式 -
var pattern = new RegExp("^([0-9_\\-]+)$");