Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式-如何过滤数字和-&引用;?_Javascript_Jquery_Regex - Fatal编程技术网

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
,则需要向其传递一个字符串,以便引用它。但除非需要动态正则表达式,否则不要使用构造函数!在字符串中,必须对反斜杠进行双转义。)