在我的数据库中,我发现人们提交只有10个数字重复的电话号码(5555555555或7777777777)的问题,我想找到一种方法来搜索任何重复10次的正则表达式。
答案 0 :(得分:1)
不是最漂亮的正则表达式,但它有效
((?:1){10}|(?:2){10}|(?:3){10}|(?:4){10}|(?:5){10}|(?:6){10}|(?:7){10}|(?:8){10}|(?:9){10}|(?:0){10})
答案 1 :(得分:1)
如果您正在查看mysql查询,则一种方法可能是具有多个OR的单个查询。
SELECT * from users WHERE phone_number='1111111111' OR phone_number='2222222222' OR phone_number='333333333' OR phone_number='4444444444' OR phone_number='5555555555' OR phone_number='666666666' OR phone_number='7777777777' OR phone_number='8888888888' OR phone_number='999999999'
如果这个问题非常重要,那么您可以通过javascript或php轻松验证手机输入。唯一的问题是,您将有用户随后创建假电话号码。
答案 2 :(得分:0)
我认为这最好在没有正则表达式的情况下实现,作为switch语句。
switch (number) {
case 1111111111: return true;
break;
case 2222222222: return true;
break;
case 3333333333: return true;
break;
case 4444444444: return true;
break;
case 5555555555: return true;
break;
case 6666666666: return true;
break;
case 7777777777: return true;
break;
case 8888888888: return true;
break;
case 9999999999: return true;
break;
case 0000000000: return true;
break;
default: return false;
break;
原因是(据我所知)它的速度更快,正则表达式看起来非常讨厌。
@"[(1111111111)(2222222222)(3333333333)(4444444444) etc (0000000000)]"