我想要一个正则表达式来验证员工 ID,即 UC-00001、UC-00012、UC-000100。等等
“UC-000”是常数,但之后如果存在一位数字,它就会变成 UC-00001,如果存在更多的 den 一位数字,那么只有三个零需要是恒定的。 (UC-00010)
我尝试使用preg_match(/[U]{1}[C]{1}-[0]{3}[0-9]$/)
但它没有正确验证。
提前致谢
您可以匹配三个零,然后从 00 到 09 或从 10 开始。
^UC-000(?:0\d|[1-9]\d*)$
模式匹配:
^
字符串的开始UC-000
字面匹配(?:
非捕获组
0\d
匹配 0 和单个数字 0-9(或用于[1-9]
不匹配 00000)|
或者[1-9]\d*
匹配数字 1-9 和可选数字)
关闭非捕获组$
字符串结束$strings = [
"UC-00001",
"UC-00012",
"UC-000100",
"UC-00001",
"UC-00010",
"UC-00000",
"UC-000010",
"UC-0000100"
];
$pattern = "~^UC-000(?:0\d|[1-9]\d*)$~";
foreach ($strings as $s) {
if (preg_match($pattern, $s)) {
echo "Match: $s" . PHP_EOL;
} else {
echo "Not match: $s" . PHP_EOL;
}
}
输出
Match: UC-00001
Match: UC-00012
Match: UC-000100
Match: UC-00001
Match: UC-00010
Match: UC-00000
Not match: UC-000010
Not match: UC-0000100
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句