我有输入字段,取12位数字.当用户输入12位数相同的数字时,我想抛出错误.至少一个数字必须是不同的.
例如
111111111111 - Error
111111111112 - Ok
123456789012 - Ok
Run Code Online (Sandbox Code Playgroud)
我尝试了这个(但我希望反转指定的正则表达式)
var pattern = "^([0-9])\\1{3}$";
var str = "5555";
pattern = new RegExp(pattern);
if(!pattern.test(str))
{
alert('Error');
}
else
{
alert('Valid');
}
Run Code Online (Sandbox Code Playgroud)
代码来自:https://stackoverflow.com/a/2884414/1169180
小提琴:http://jsfiddle.net/wn9scv3m/10/
编辑:不允许 if(!pattern.test(str))在此行中进行操作
你可以使用这个正则表达式:
^(\d)(?!\1+$)\d{11}$
Run Code Online (Sandbox Code Playgroud)
说明:
^ - 匹配线开始(\d) - 匹配第一个数字并在后面的参考#1中捕获它 \1(?!..) 是一个负面的先行(?!\1+$) 表示如果第一个数字后跟相同的数字(捕获的组)直到结束,则禁止匹配.\d{11}$ 匹配下一个11位数后跟行结束