手机号码字段不应接受连续的1s,2s等

时间:2016-01-24 07:45:51

标签: regex

我正在尝试为移动电话号码字段制作一个正则表达式,以便它不会接受以下类型的输入:

  1. 0000000000
  2. 1111111111
  3. 2222222222
  4. 像明智的连续相同的10位数。如何避免接受连续的类似十位数作为手机号码字段的输入?

2 个答案:

答案 0 :(得分:2)

一个简单的正则表达式解决方案是捕获第一个数字并检查它是否重复了9次然后采取必要的操作。由于您没有提及任何其他标签,我会留给您采取必要的行动。

正则表达式/(\d)\1{9}/g捕获第一个数字,如果重复9次,则匹配模式。

Regex101 Demo

答案 1 :(得分:1)

您可以使用下面的NOT REGEXP_LIKE(MOBILE_NO,'(.)\1{9,}')来抑制不需要的输入。但正如约阿希姆所建议的,如果可能的话,最好从前端避开它。如果您遇到任何问题,请查看此查询并告知我们。

WITH TBL(MOBILE_NO) AS
( SELECT '1111111111' FROM DUAL UNION
 SELECT '1234444444' FROM DUAL UNION
 SELECT '2222222222' FROM DUAL
 )
SELECT * FROM TBL
where NOT REGEXP_LIKE(MOBILE_NO,'(\d)\1{9,}')

这会将输出设为1234444444,并会跳过其他mobile_no,其中有10个连续相同的数字。

引用此answer来获取此信息。