如何 preg_match KRA Pin 号码
How to preg_match KRA Pin no
在处理人力资源系统时,我在验证肯尼亚税务局的 PinNo 时遇到了问题。该字符串的长度应为 11。该字符串应以字母 a
或 A
开头,然后是任何数字 [0-9]
并以字符 [a-zA-Z]
.[=16 结尾=]
这是我的实现:
$pattern = '/^\A(a|A){1}\d{9}[a-zA-Z]{1}$/';
$pinno='A012345678K';
if (!(preg_match($pattern, $pinno))) {
return false;
} else {
return true;
}
您可以将代码重新修改为
$pattern = '/^a\d{9}[a-z]$/i';
return preg_match($pattern, $pinno);
参见regex demo。模式将匹配:
^
- 字符串开头
a
- a
或 A
因为 i
是不区分大小写的修饰符
\d{9}
- 九位数
[a-z]
- 任何 ASCII 字母
$
- 字符串结尾。
注意:
^\A
匹配字符串的开头两次,您可以保留其中任何一个锚点
- 要匹配集合中的字符,建议使用字符类,因此
(a|A)
-> [aA]
。但是,您可以仅使用 a
并添加不区分大小写的修饰符
{1}
限制修饰符总是多余的,因为默认情况下任何原子都匹配一次。
关于 $
的注释:它也将匹配字符串中最后一个换行符之前。要避免这种行为,请将 $
替换为 \z
,或添加 D
修饰符:'/^a\d{9}[a-z]$/iD'
.
在处理人力资源系统时,我在验证肯尼亚税务局的 PinNo 时遇到了问题。该字符串的长度应为 11。该字符串应以字母 a
或 A
开头,然后是任何数字 [0-9]
并以字符 [a-zA-Z]
.[=16 结尾=]
这是我的实现:
$pattern = '/^\A(a|A){1}\d{9}[a-zA-Z]{1}$/';
$pinno='A012345678K';
if (!(preg_match($pattern, $pinno))) {
return false;
} else {
return true;
}
您可以将代码重新修改为
$pattern = '/^a\d{9}[a-z]$/i';
return preg_match($pattern, $pinno);
参见regex demo。模式将匹配:
^
- 字符串开头a
-a
或A
因为i
是不区分大小写的修饰符\d{9}
- 九位数[a-z]
- 任何 ASCII 字母$
- 字符串结尾。
注意:
^\A
匹配字符串的开头两次,您可以保留其中任何一个锚点- 要匹配集合中的字符,建议使用字符类,因此
(a|A)
->[aA]
。但是,您可以仅使用a
并添加不区分大小写的修饰符 {1}
限制修饰符总是多余的,因为默认情况下任何原子都匹配一次。
关于 $
的注释:它也将匹配字符串中最后一个换行符之前。要避免这种行为,请将 $
替换为 \z
,或添加 D
修饰符:'/^a\d{9}[a-z]$/iD'
.