用于验证员工 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]$/)但它没有正确验证。

提前致谢

第四只鸟

您可以匹配三个零,然后从 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章