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/