1. 概述
1.1 应用场景
客户有数据表,是存储公司联系人信息的,需要校验表字段:校验联系人手机号是否合法。

1.2 实现思路
使用「数据检测」功能,创建检测规则,选择「字段格式检测」,输入正则表达式和检测字段,判断「匹配行占比」等于 1,即满足正则表达式的电话数据占比应该是100%,如果不满足,则校验失败,如下图所示:

2. 操作步骤
2.1 创建检测任务
在「数据管理>数据检测」下新建「检测任务」,如下图所示:

2.2 选择检测对象
选择需要检测的数据表,如下图所示:

2.3 设置规则
添加检测规则,选择「字段格式检测」,输入正则表达式:^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$,计算结果选择「匹配行占比」。
添加检测数据字段,同时设置预期范围为「行占比」=1,如下图所示:
即满足正则表达式的电话数据占比应该是100%,如果不满足,则校验失败。

保存并运行任务。
2.4 效果查看
运行结束可看到数据检测失败,行占比低于期望值,也就是存在手机号不合法。如下图所示:

3. 拓展阅读
提示:用户需要根据自身数据库语法支持的正则表达式进行设计,文档仅为示例。一些常用正则表达式举例:
| 表达式目的 | 表达式 |
|---|---|
检查指定手机号是否合法 | ^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$ |
| 检查数字 | ^[0-9]*$ |
| 至少n位的数字 | ^\d{n,}$ |
| 汉字 | ^[\u4e00-\u9fa5]{0,}$ |
| 英文和数字 | ^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$ |
| 身份证号(15位、18位数字),最后一位是校验位,可能为数字或字符X | (^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$) |
| 帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线) | ^[a-zA-Z][a-zA-Z0-9_]{4,15}$ |
| 日期格式 | ^\d{4}-\d{1,2}-\d{1,2} |
| 腾讯QQ号 | [1-9][0-9]{4,} (腾讯QQ号从10000开始) |
| Email地址 | ^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ |
更多示例详情参见:https://www.jyshare.com/front-end/854/
