用于检查所有数字的正则表达式是否相同

Sha*_*ggy 5 javascript regex

我有输入字段,取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))在此行中进行操作

anu*_*ava 9

你可以使用这个正则表达式:

^(\d)(?!\1+$)\d{11}$
Run Code Online (Sandbox Code Playgroud)

RegEx演示


说明:

  • ^ - 匹配线开始
  • (\d) - 匹配第一个数字并在后面的参考#1中捕获它 \1
  • (?!..) 是一个负面的先行
  • (?!\1+$) 表示如果第一个数字后跟相同的数字(捕获的组)直到结束,则禁止匹配.
  • \d{11}$ 匹配下一个11位数后跟行结束