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

时间:2017-04-13 02:50:54

标签: javascript regex

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

Ex // A12,C5是有效的条目,但B18将无效,H2也是如此。

我正在使用的正则表达式根据字母值使用不正确的输入,但不是数字 - 所以在我之前的例子中它正确标记H2,但是允许输入B18。

我对正则表达式相当新,所以我不确定我哪里误入歧途。任何帮助将不胜感激!

我目前的表达方式如下:

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

再次感谢!

2 个答案:

答案 0 :(得分:1)

这个表达式可以做到:

/^[A-D]([1-9]|1[0-6])$/i



var re = /^[A-D]([1-9]|1[0-6])$/i;

console.log(re.test('A12'));
console.log(re.test('C5'));
console.log(re.test('H12'));
console.log(re.test('B18'));




答案 1 :(得分:0)

您可以使用带有不敏感标记的正则表达式:

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

<强> Working demo