Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.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_Regex - Fatal编程技术网

JavaScript中的正则表达式-未正确过滤

JavaScript中的正则表达式-未正确过滤,javascript,regex,Javascript,Regex,我有一个正则表达式,我试图用它来控制用户输入,只允许字母a-D(不区分大小写)后跟1-16之间的数值 Ex//A12、C5是有效条目,但B18和H2一样无效 我使用的正则表达式根据字母值标记不正确的输入,而不是数字-因此在我前面的示例中,它正确标记H2,但允许输入B18 我对regex相当陌生,所以我不确定我在哪里误入歧途了。任何帮助都将不胜感激 我目前的表述如下: var regex = new RegExp(/([A-Da-d]{1}[1-9]{1}|[A-Da-d]{1}[1]{1}[0-

我有一个正则表达式,我试图用它来控制用户输入,只允许字母a-D(不区分大小写)后跟1-16之间的数值

Ex//A12、C5是有效条目,但B18和H2一样无效

我使用的正则表达式根据字母值标记不正确的输入,而不是数字-因此在我前面的示例中,它正确标记H2,但允许输入B18

我对regex相当陌生,所以我不确定我在哪里误入歧途了。任何帮助都将不胜感激

我目前的表述如下:

var regex = new RegExp(/([A-Da-d]{1}[1-9]{1}|[A-Da-d]{1}[1]{1}[0-6]{1})/);

再次感谢

此表达式将执行以下操作:

/^[A-D]([1-9]|1[0-6])$/i
var re=/^[A-D]([1-9]| 1[0-6])$/i;
控制台日志(重新测试('A12'));
控制台日志(重新测试('C5');
控制台日志(重新测试('H12'));

控制台日志(重新测试('B18'))您可以使用这样一个带有不敏感标志的正则表达式:

^[a-d](?:1[0-6]|[0-9])$

@AndrewShepherd在我的正则表达式末尾有一个
i
标志。这修复了它。谢谢你能告诉我我的原始正则表达式模式哪里出了问题吗?只是试着学习,这样我就可以提高自己解决问题的能力。@gothamprince,你的第一部分模式是从1匹配到9,而不允许第二部分匹配。在您的情况下,团队的顺序很重要。此外,您还使用了大量不必要的
{1}
。您可以在这里查看regex图表,因为您可以看到第一组始终匹配,而不允许第二部分。此外,如果你使用了锚,它也会起作用,这是有意义的。谢谢另外,如果要传递的是regex文本,则无需调用
RegExp()
函数。只要说
var regex=/([A-etc./;