1

我需要验证表单中的条目。我/^\d{9}[A-Z]$/用来检查 9 位数字和一个大写字符。我被告知输入可以是单个大写字符和 9 个数字或 9 个数字和单个大写字符,但不能既是单个大写字符,又是 9 个数字,然后是单个大写字符。

基本上要么A123456789或要么123456789A是可以接受的,但不是A123456789A

我将使用什么正则表达式来验证在开头或结尾处至少有一个大写字符,但不是两者都有……后面或前面有 9 个数字?

4

2 回答 2

6

如果您想在一个正则表达式中使用它,则应该这样做:

(^\d{9}[A-Z]$)|(^[A-Z]\d{9}$)
于 2013-10-22T15:19:38.207 回答
0

如果您的正则表达式支持它,您可以使用条件:

^([A-Z])?\d{9}(?(1)|[A-Z])$

解释:

^
([A-Z])?  # optional capture group
\d{9}
(?(1)     # if capture group 1 exist
          # then there is nothing
  |       # ELSE
    [A-Z] # there is an uppercase letter
)
$
于 2013-10-22T15:26:25.700 回答