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

时间:2014-11-21 14:40:21

标签: javascript regex

我有输入字段,取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))不允许操作

1 个答案:

答案 0 :(得分:9)

您可以使用此正则表达式:

^(\d)(?!\1+$)\d{11}$

RegEx Demo


<强>解释

  • ^ - 匹配行开始
  • (\d) - 匹配第一个数字并在后面的引用#1中捕获它,即\1
  • (?!..)是一个负面的预测
  • (?!\1+$)表示如果第一个数字后跟相同的数字(捕获的组),则不允许匹配。直到结束。
  • \d{11}$匹配下一个11位数后跟行尾