我有输入字段,取12位数字。当用户输入12位数相同的数字时,我想抛出错误。至少一个号码必须是不同的。
E.g
111111111111 - Error
111111111112 - Ok
123456789012 - Ok
我尝试了这个(但我希望反转指定的正则表达式)
var pattern = "^([0-9])\\1{3}$";
var str = "5555";
pattern = new RegExp(pattern);
if(!pattern.test(str))
{
alert('Error');
}
else
{
alert('Valid');
}
代码来自:https://stackoverflow.com/a/2884414/1169180
小提琴:http://jsfiddle.net/wn9scv3m/10/
修改:此行中if(!pattern.test(str))
不允许操作
答案 0 :(得分:9)
您可以使用此正则表达式:
^(\d)(?!\1+$)\d{11}$
<强>解释强>
^
- 匹配行开始(\d)
- 匹配第一个数字并在后面的引用#1中捕获它,即\1
(?!..)
是一个负面的预测(?!\1+$)
表示如果第一个数字后跟相同的数字(捕获的组),则不允许匹配。直到结束。\d{11}$
匹配下一个11位数后跟行尾