Javascript 正则表达式-如何过滤数字和-&引用;?
我试图只过滤数字和Javascript 正则表达式-如何过滤数字和-&引用;?,javascript,jquery,regex,Javascript,Jquery,Regex,我试图只过滤数字和-。每当用户输入任何不是数字和连字符/破折号的内容时,都应将其删除。我有正则表达式[0-9\-],但它不工作。我知道这是不对的,但我对这件事还不太熟悉 请看 Plase help.首先,新RegExp需要一个字符串;您应该使用文本/[0-9-]/。下一个问题是replace甚至不应该存在。另一个问题是,你永远无法完全确定文本是在哪里输入的——不要假设它在末尾。那会让人非常恼火 改为使用,并在结尾处进行验证,而不是在某人键入时进行验证。首先,new RegExp需要一个字符串;您
-
。每当用户输入任何不是数字和连字符/破折号的内容时,都应将其删除。我有正则表达式[0-9\-]
,但它不工作。我知道这是不对的,但我对这件事还不太熟悉
请看
Plase help.首先,
新RegExp
需要一个字符串;您应该使用文本/[0-9-]/
。下一个问题是replace
甚至不应该存在。另一个问题是,你永远无法完全确定文本是在哪里输入的——不要假设它在末尾。那会让人非常恼火
改为使用
,并在结尾处进行验证,而不是在某人键入时进行验证。首先,new RegExp
需要一个字符串;您应该使用文本/[0-9-]/
。下一个问题是replace
甚至不应该存在。另一个问题是,你永远无法完全确定文本是在哪里输入的——不要假设它在末尾。那会让人非常恼火
改为使用
,并在结尾处进行验证,而不是在有人键入时进行验证。尝试以下正则表达式:
[^\d\-]+
并替换为空字符串
说明:
[^character\u group]
否定:匹配不在字符组中的任何单个字符
\d
匹配任何十进制数字
+
与上一个元素匹配一次或多次
\-
匹配-
以及您的代码:
result = inputString.replace(/[^\d\-]+/g, "");
试试这个正则表达式:
[^\d\-]+
并替换为空字符串
说明:
[^character\u group]
否定:匹配不在字符组中的任何单个字符
\d
匹配任何十进制数字
+
与上一个元素匹配一次或多次
\-
匹配-
以及您的代码:
result = inputString.replace(/[^\d\-]+/g, "");
更改正则表达式-
var pattern = new RegExp("^([0-9_\\-]+)$");
更改正则表达式-
var pattern = new RegExp("^([0-9_\\-]+)$");
/[0-9\-]/
如果是文本,则应为正则表达式。别忘了转义“-”字符。@neouser99:它在开头或结尾都不重要:)而且+
也不重要,因为它没有锚定。@minitech你的意思是说我不应该做新的RegExp,而应该做类似var patter=/[0-9-]/@西奥多:是的。(如果要执行新建RegExp
,则需要传递一个字符串,以便引用它。但除非需要动态正则表达式,否则不要使用构造函数!在字符串中,必须对反斜杠进行双转义。)/[0-9\-]/
如果是文本,则应为regex。别忘了转义“-”字符。@neouser99:它在开头或结尾都不重要:)而且+
也不重要,因为它没有锚定。@minitech你的意思是说我不应该做新的RegExp,而应该做类似var patter=/[0-9-]/@西奥多:是的。(如果要执行新建RegExp
,则需要向其传递一个字符串,以便引用它。但除非需要动态正则表达式,否则不要使用构造函数!在字符串中,必须对反斜杠进行双转义。)