2

我正在为像G20003030或像G-20003030这样的检查字符串构建一个正则表达式。第一个字母可以是任何一个:VGJ。这是我的代码:

$string = "G20003030";
if (preg_match('^[VGJ]{1,1}?[0-9]{8,8}$/', $string)) {
    echo "passed";
} else {
    echo "not passed";
}

但它总是返回“未通过”。我的正则表达式有什么问题以及如何检查这两个变体?(我认为我的代码只适用于第一个)

4

2 回答 2

3

警告: :在第 3 行的 /code/xxxxxx.php 中preg_match()找不到结束分隔符'^'

您忘记了第一个斜线和连字符(感谢@Sepster)。

/^[VGJ]-?[0-9]{8}$/
于 2012-09-13T16:14:13.387 回答
2

尝试使用这个正则表达式:

/^[VGJ]-?[0-9]{8}$/
于 2012-09-13T16:16:10.423 回答