# REGEXP_MATCH
判断是否匹配正则表达式。完全不匹配才返回 false 。
# 语法
REGEXP_MATCH(str, pattern)
- str:给定的字符串对象
- pattern:一个用于匹配字符串的正则表达式,正则表达式中的
\
需要连续输入2个,第一个\
表示转义。正则表达式的语法参考 (opens new window)
# 示例
REGEXP_MATCH("abc123","[0-9]")
数字校验,返回true
,匹配0到9中的一个字符REGEXP_MATCH("1234",'^-?\\d+$')
整数校验,返回true
REGEXP_MATCH("23","^[1-9]\d*$")
正整数校验,返回true
,首位不为0REGEXP_MATCH("Admin_123456","^[a-zA-Z]\\w{5,17}$")
密码复杂度校验,返回true
,只允许为数字、英文、下划线并以字母开头,长度为6-18REGEXP_MATCH("13598224932","^((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))\\d{8}$")
手机号码校验,返回true
,匹配手机号是否为13*
、15*
、18*
的11位数字REGEXP_MATCH("210502198412020944","^[1-9]\\d{5}(18|19|20)\\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]")
身份证校验,返回true
REGEXP_MATCH("我是小明","明")
汉字校验,返回true
REGEXP_MATCH("xxxx@qq.con","[\\w]+(\.[\\w]+)*@[\\w]+(\.[\\w]?)")
邮箱校验,返回true
,匹配qq邮箱REGEXP_MATCH("420107","[1-8][1-7]\\d{4}")
行政区划校验,返回true
,匹配区划编码REGEXP_MATCH("https://www.baidu.com","^https?://.+?(com|cn|net).*?")
网址校验,返回true
,匹配http和https协议REGEXP_MATCH("AbCd","[A-Z]")
英文字符,返回true
REGEXP_MATCH("192.168.2.3","^(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)(\.(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)){3}$")
ipv4地址校验,返回true
REGEXP_MATCH([门店销售明细表].[销售日期],"20180414")
引用模型字段,匹配日期
# 常用人名校验
REGEXP_MATCH("小明",'^[\\u4e00-\\u9fa5]{2,4}$')
常见中国人名校验,匹配2-4位中文人名REGEXP_MATCH("疗𦬅旺",'^((?![\\u3000-\\u303F])[\\u2E80-\\uFE4F]|·)*(?![\\u3000-\\u303F])[\\u2E80-\\uFE4F]$')
中国人名(含生僻字)校验,排除中文句号逗号、书名号等汉字符号,并包含少数民族姓名REGEXP_MATCH("Tony Park",'^[A-Z][a-z]+\\s[A-Z][a-z]+$')
标准英文人名校验(姓和名首字母大写)REGEXP_MATCH("疗𦬅旺",'^[A-Z][a-z]+\\s[A-Z][a-z]+$') OR REGEXP_MATCH("疗𦬅旺",'^((?![\\u3000-\\u303F])[\\u2E80-\\uFE4F]|·)*(?![\\u3000-\\u303F])[\\u2E80-\\uFE4F]$')
中英文人名(含生僻字)校验,中英文分开校验用 OR 连接
Java和JavaScript正则表达式的区别
前后端正则匹配生僻字结果不一样,Java和JavaScript的正则匹配遇到代理对时处理逻辑不一样,大部分的校验都是前端JavaScript实现的校验,若遇到需要特殊处理下
- JavaScript会分开匹配每个code,无法写代理对的范围,可以绕开类似用
[\\u3000-\\u303F][\\u2E80-\\uFE4F]
来表示范围 - Java把属于一个字符的两个code作为整体匹配,并且只能通过代理对的范围匹配,类似于
[\\u3000\\u2E80-\\u303F\\uFE4F]
来表示范围
# 复杂中国人名校验
复杂中国人名校验,包含生僻字,中文及少数民族姓名并排除中英文特殊符号、颜文字和emoji,demo地址:校验中国人名 (opens new window)
表达式示例
//比较广泛的中文汉字(\\u2E80-\\uFE4F),包含生僻字和很多不需要的字符 ( REGEXP_MATCH("张三",'^((?![\\u3000-\\u303F])[\\u2E80-\\uFE4F])*$')//常见人名含生僻字 OR REGEXP_MATCH("张三",'^((?![\\u3000-\\u303F])[\\u2E80-\\uFE4F])+(·)((?![\\u3000-\\u303F])[\\u2E80-\\uFE4F])+$')//少数民族姓名含生僻字 ) //排除CJK标点符号(\\u3000-\\u303F) AND ( REGEXP_MATCH("张三",'^((?![\\uFE30-\\uFE4F])[\\u2E80-\\uFE4F])*$')//常见人名含生僻字 OR REGEXP_MATCH("张三",'^((?![\\uFE30-\\uFE4F])[\\u2E80-\\uFE4F])+(·)((?![\\uFE30-\\uFE4F])[\\u2E80-\\uFE4F])+$')//少数民族姓名含生僻字 ) //排除CJK兼容符号(\\uFE30-\\uFE4F)包括竖排变体、下划线、顿号 AND ( REGEXP_MATCH("张三",'^((?!([\\uD83C|\\uD83D|\\uD83E][\\uDC00-\\uDFFF][\\u200D|\\uFE0F]|[\\uD83C|\\uD83D|\\uD83E][\\uDC00-\\uDFFF]|[0-9|*|#]\\uFE0F\\u20E3|[0-9|#]\\u20E3|[\\u203C-\\u3299]\\uFE0F\\u200D|[\\u203C-\\u3299]\\uFE0F|[\\u2122-\\u2B55]|\\u303D|[\\A9|\\AE]\\u3030|\\uA9|\\uAE|\\u3030))[\\u2E80-\\uFE4F])*$')//常见人名含生僻字 OR REGEXP_MATCH("张三",'^((?!([\\uD83C|\\uD83D|\\uD83E][\\uDC00-\\uDFFF][\\u200D|\\uFE0F]|[\\uD83C|\\uD83D|\\uD83E][\\uDC00-\\uDFFF]|[0-9|*|#]\\uFE0F\\u20E3|[0-9|#]\\u20E3|[\\u203C-\\u3299]\\uFE0F\\u200D|[\\u203C-\\u3299]\\uFE0F|[\\u2122-\\u2B55]|\\u303D|[\\A9|\\AE]\\u3030|\\uA9|\\uAE|\\u3030))[\\u2E80-\\uFE4F])+(·)((?!([\\uD83C|\\uD83D|\\uD83E][\\uDC00-\\uDFFF][\\u200D|\\uFE0F]|[\\uD83C|\\uD83D|\\uD83E][\\uDC00-\\uDFFF]|[0-9|*|#]\\uFE0F\\u20E3|[0-9|#]\\u20E3|[\\u203C-\\u3299]\\uFE0F\\u200D|[\\u203C-\\u3299]\\uFE0F|[\\u2122-\\u2B55]|\\u303D|[\\A9|\\AE]\\u3030|\\uA9|\\uAE|\\u3030))[\\u2E80-\\uFE4F])+$')//少数民族姓名含生僻字 ) //排除颜文字和emoji表情符号([\\uD83C|\\uD83D|\\uD83E][\\uDC00-\\uDFFF][\\u200D|\\uFE0F]|[\\uD83C|\\uD83D|\\uD83E][\\uDC00-\\uDFFF]|[0-9|*|#]\\uFE0F\\u20E3|[0-9|#]\\u20E3|[\\u203C-\\u3299]\\uFE0F\\u200D|[\\u203C-\\u3299]\\uFE0F|[\\u2122-\\u2B55]|\\u303D|[\\A9|\\AE]\\u3030|\\uA9|\\uAE|\\u3030)