javascript - 数字在字符串中重复次数不超过五次的正则表达式,例如联系电话

标签 javascript php regex

大家好,我是正则表达式领域的新手,我只是期待创建一个正则表达式,它的数字重复次数不超过五次,而且它应该只从 7、8、9 位数字开始。

我以这种方式创建了正则表达式,这给了我第一个条件,例如它仅从 7、8、9 开始。但是有一个问题我不明白如何将任何单个数字的重复限制为五次。请帮忙。

my regex   ^[789]\d{9}$

最佳答案

but there is problem I can not understand how to limit the repeatation of any single digits to only five times

您可以检查一个数字是否重复 N 次(使用 this answer )

var checkIfDigitRepeatedNTimes = function(input, N) 
{
  var regex = new RegExp("(\\d)\\1{" + N + "}", "g");
  //console.log( regex );
  return !!input.match(regex);
}

演示

var checkIfDigitRepeatedNTimes = function(input, N) 
{
  var regex = new RegExp("(\\d)\\1{" + N + "}", "g");
  //console.log( regex );
  return !!input.match(regex);
}

console.log( checkIfDigitRepeatedNTimes( "454324154", 5 ) );

console.log( checkIfDigitRepeatedNTimes( "789666666", 5 ) );

编辑

将 checkIfDigitRepeatedNTimes 方法与您的正则表达式一起用作

var regex = /^[789]\d{9}$/;
var input = "9851542144";
var isValid = !!input.match( regex ) && checkIfDigitRepeatedNTimes( input, 5 );

编辑2

如果要求是确保重复不一定是连续的,则将checkIfDigitRepeatedNTimes修改为

var checkIfDigitRepeatedNTimes = function(input, N) 
{
  input = input.split("").sort().join(""); //sorting the input 
  var regex = new RegExp("(\\d)\\1{" + N + "}", "g");
  //console.log( regex );
  return !!input.match(regex);
}

关于javascript - 数字在字符串中重复次数不超过五次的正则表达式,例如联系电话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48186124/

相关文章:

javascript - 使用 webkit-tap-highlight 查找元素

php - linux (centos) 复制文件的权限

php - 如何将 Javascript 文件链接到 Zend 中的模型文件夹

regex - 如何使用 Node 忽略 URL 以使用没有 # 的 Backbone 路由器?

c# - 使用 excel.interop 替换 excel 中的单元格值

javascript - 在浏览器中的 ie 中渲染 PDF

javascript - 使用 css 选择器获取兄弟网络元素

javascript - 将所有元素包装在一个元素中,直到出现特定标记

php 检查sql数据库以查看它是否包含与字符串相似的文本

php - 用 PHP 替换一个 div 内容