php - 在PHP中匹配正则表达式中的汉字长度
问题描述
我正在尝试在 php 中执行名称标签的输入检查,名称标签由英文、中文和数字组成。
"/^[A-z0-9\p{Han}]{2,12}$/u";
我想实现一个汉字为2个单位,英文/数字为1个单位的12个字符的名称标签规则。
正则表达式可以匹配这样的规则吗?
举个例子:
六 matches because as of \p{Han} and 2 units
六1 matches because of 0-9, \p{Han}, and 3 units
1 does not match as of 1 unit
一二三四五六七 does not match as of 14 units
解决方案
经过一番修修补补,我有一个解决方案
"/^([A-Za-z0-9]{2}|\p{Han})([A-Za-z0-9]{1,2}|\p{Han}){0,5}$/u";
第一部分([A-Za-z0-9]{2}|\p{Han})
匹配 2 个单位,1 个汉字或 2 个 Eng/Num。
紧随其后的([A-Za-z0-9]{1,2}|\p{Han}){0,5}
是匹配 0 个单位到 5 个汉字或 10 个 Eng/Num 字符。共12个单位。
感谢您对不应该使用 [Az]的说明
推荐阅读
- .net - VB.NET Pinvoke:如何修复传递给 DLL 的结构地址?
- ios - SFSafariViewController 标题颜色变化
- php - 在数组中找到相似的值,返回键
- http - 仅使用 HTTPS 驱动 API OAuth2
- android - 无法使用 androidx 库与 Jenkins 一起构建 apk
- c++ - C++ 中信号量的编写者偏好
- php - 如何在 cakePHP 3.6 中通过一些条件检查来限制或访问控制器的所有功能
- testng - “数据:”在地址栏中 chromedriver(带有 testng 的 maven 项目)
- .net - Labview 使用带有 3rd 方 dll 的 .net 列表类型
- android - react native 中的 createDrawerNavigator