用于验证员工 ID 的正则表达式
Regular expression to validate employee id
我想要一个正则表达式来验证员工 ID
UC-00001,
UC-00012,
UC-000100。等等
“UC-000”是常量,但之后如果存在一位数,则变为 UC-00001,如果存在更多 den 一位数,则只需要三个零是常量。(UC-00010)
我尝试使用 preg_match(/[U]{1}[C]{1}-[0]{3}[0-9]$/)
但它没有正确验证。
提前致谢
您的模式在逻辑上是正确的,只是您不允许在前导 000
后使用多个数字。我会使用这个版本:
^UC-[0-9]{5,}$
PHP 脚本:
$input = "UC-000100";
if (preg_match("/^UC-[0-9]{5,}$/", $input)) {
echo "VALID";
}
您可以匹配三个零,然后匹配从 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
我想要一个正则表达式来验证员工 ID UC-00001, UC-00012, UC-000100。等等
“UC-000”是常量,但之后如果存在一位数,则变为 UC-00001,如果存在更多 den 一位数,则只需要三个零是常量。(UC-00010)
我尝试使用 preg_match(/[U]{1}[C]{1}-[0]{3}[0-9]$/)
但它没有正确验证。
提前致谢
您的模式在逻辑上是正确的,只是您不允许在前导 000
后使用多个数字。我会使用这个版本:
^UC-[0-9]{5,}$
PHP 脚本:
$input = "UC-000100";
if (preg_match("/^UC-[0-9]{5,}$/", $input)) {
echo "VALID";
}
您可以匹配三个零,然后匹配从 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