1. 概述
语法 | REGEXP(文本, 正则表达式) | 「文本」是否与「正则表达式」相匹配 |
---|---|---|
参数1 | 文本 | 字符串 |
参数2 | 正则表达式 | 正则表达式 |
返回值类型 | 布尔 |
2. 注意事项
正则表达式需要以字符串传入,如果表达式中有\,需要使用\\(转义)。所以当公式为regexp(字符串,"\d")时会提示不合法,需写成regexp(字符串,"\\d"),如下图所示:
如果参数中有NULL,则结果为NULL
3. 示例
公式 | 结果 |
---|---|
REGEXP("aaaaac","a*c") | true |
REGEXP("abc","a*c") | false |
一些常用正则表达式举例:
表达式目的 | 表达式 | 说明 |
---|---|---|
检查指定手机号是否合法 注:仅示例,校验规则可根据你的实际情况书写。 | ^1(3\d|5[36789])\d{8}$ | 手机号共 11 位,第一位为 1,第二位为 3 或者 5,当第二位为 5 的时候,第三位只能是 36789 中的一个 |
检查中文名是否合法 | ^[\u4e00-\u9fa5]+$ | 若不是中文或中文的前后有空格,都认为是不合法的 |
检查 HTML 标记是否匹配 | <(.*)>.*<\/\1>|<(.*) \/> | 如若只出现<html>而无对应的</html>,则检验结果是 HTML 标记不匹配 |
检查 URL 格式是否合法 | [a-zA-z]+://[^\s]* | URL合法格式应该以字母连接://开头 |
检查 IP 格式是否合法 | (\d+)\.(\d+)\.(\d+)\.(\d+) | IP的格式是点分十进制格式,例如:192.168.100.11 就是正确的 IP |
检查账号是否合法 | ^[a-zA-Z][a-zA-Z0-9_]{4,15}$ | 账号字母开头,其他位可以有大小写字母、数字、下划线,允许 5-16 字节 |
检查 QQ 号是否合法 | ^\s*[0-9]{4,9}\s*$ | QQ 号码必须是数字,最短 5 位,最长 10 位 |
检查邮政编码是否合法 | ^[1-9]\d{5}$ | 邮编首位不为 0,长度是 6 位的数字 |
检查身份证号是否合法 | (^\d{14}$)|(^\d{17}([0-9]|X)$) | 身份证号码为 15 位或者 18位,15 位时全为数字,18 位前 17 位为数字,最后一位是校验位,可能为数字或字符 X |
检查时间是否合规 | ^(0\d{1}|1\d{1}|2[0-3]):([0-5]\d{1})$ | 时间是 24 小时制,:号前是 01 到 23 |
检查密码是否合规 | ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$ | 密码必须包含大小写字母和数字的组合,不能使用特殊字符,长度在 8-10之间 |
检查邮箱是否合规 | 因为邮箱格式类型比较多,比较常用的是^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$ | 只允许英文字母、数字、下划线、英文句号、以及中划线组成 如果名称中有汉字、字母、数字,域名只允许英文域名,正则表达式为^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$ |
检查输入内容是否有空格 | ^[^\s]*$ | 输入的内容不允许包含空格时使用,正则表达式为^[^\s]*$ |
检查用户密码是否合法 | ^[a-zA-Z]\w{5,17}$ | 密码规则是以字母开头,长度在 6-18 之间,只能包含字母、数字和下划线。 |