JavaScript中的正则表达式验证(测试)

JavaScript中的正则表达式验证(测试),javascript,regex,Javascript,Regex,正则表达式问题似乎很常见,因为每个问题似乎都适用于特定的情况。话虽如此,以下是我的具体案例 我需要验证员工id是否为两种特定格式之一。第一种格式(也是我工作可靠的格式)是(没有引号):“A000000”,其中“A”可以是任何字母字符,“0”可以是0到9之间的任何数字。另一个要求是,只需要员工id的前两个位置,这意味着用户可以输入“A0”并进行验证(此员工id用于SQL语句的类似-…SID的类似“A0%”。同样,我通过使用 [A-Z]{1}\d{1,6} 第二种格式给我带来了麻烦。同样的要求也适用

正则表达式问题似乎很常见,因为每个问题似乎都适用于特定的情况。话虽如此,以下是我的具体案例

我需要验证员工id是否为两种特定格式之一。第一种格式(也是我工作可靠的格式)是(没有引号):“A000000”,其中“A”可以是任何字母字符,“0”可以是0到9之间的任何数字。另一个要求是,只需要员工id的前两个位置,这意味着用户可以输入“A0”并进行验证(此员工id用于SQL语句的类似-…SID的类似“A0%”。同样,我通过使用

[A-Z]{1}\d{1,6}

第二种格式给我带来了麻烦。同样的要求也适用于上面,其中只需要输入字符串的前两个位置,其他任何内容都是可选的,但如果输入,则必须遵循指定的格式。格式为(不带引号):“000000 A”。我遇到的问题是,如果输入的数字超过两个,那么接下来输入的三到六个值都是数字,如果输入的是最后一个值,那么它必须是一个字符。因此,有效的输入可以是

“00”或“000”或“0000”或“00000”或“000000”或“000000 A”,但不是“0”或“0A”或“00A”或“000A”等,或“0000000”。以下是我到目前为止对这种格式的了解

\d{2}(\d{1,4})?[A-Z]{0,1}

问题是,这允许在位置3到6的任何位置输入字母字符。它不允许在前两个位置输入任何字母字符(良好),也不允许在第七个(最后一个)位置输入任何数字字符(良好).只是那些可选的第三到第六个字符允许字母字符,这让我感到悲伤


我希望这是足够的信息(或者可能不是太多)。任何帮助都将不胜感激。谢谢!!!

对于第一个,
{1}
是多余的:

[A-Z][0-9]{1,6}

对于第二个,可能是:

\d{2}\d{0,1}\d{0,1}\d{0,1}\d{0,1}[A-Z]{0,1}

尝试以下表达式:

(\d{2,5}|\d{6}[A-Z]?)
这将匹配2到5个数字(
\d{2,5}
)或6个数字和一个可选字母(
\d{6}[A-Z]?
)。如果需要精确匹配,请使用
^
$
锚来标记开始和结束:

^(\d{2,5}|\d{6}[A-Z]?)$

这非常有效,非常感谢(特别是快速响应)var date=/(0[1-9]|1[012])[-\/.](0[1-9]|[12][0-9]|3[01])[-\/.](19[124; 20)\d/;对于这个表达式,如何使用^和$进行精确的表达式。