【发布时间】:2009-04-20 15:26:27
【问题描述】:
似乎正则表达式问题很常见,因为每个问题似乎都适用于特定情况。话虽如此,这是我的具体情况......
我需要验证员工 ID 是两种特定格式之一。第一种格式(也是我可靠工作的格式)是(不带引号): "A000000" ,其中 "A" 可以是任何字母字符,而 "0" 可以是 0 到 9 之间的任何数字。另一个要求因为这是只需要员工 id 的前两个位置,这意味着用户可以输入“A0”并且它会验证(这个员工 id 被用于 SQL 语句的 LIKE - ...SID LIKE “A0%” . 再次,这是我通过使用...
[A-Z]{1}\d{1,6}
第二种格式给我带来了麻烦。上面的要求相同,只需要输入字符串的前两个位置,其他任何内容都是可选的,但如果输入,则必须遵守指定的格式。格式为(不含引号):“000000A”。我遇到问题的部分是确保如果输入的数字超过两位,接下来输入的三到六个值是数字,如果输入最后一个值,那么它必须是一个字符。所以有效的输入可能是......
“00”或“000”或“0000”或“00000”或“000000”或“000000A”,但不是“0”或“0A”或“00A”或“000A”等,或“ 0000000”。这是我目前所拥有的这种格式......
\d{2}(\d{1,4})?[A-Z]{0,1}
问题在于,这允许在位置 3 到 6 的任何位置输入字母字符。它不允许前两个位置有任何字母字符(好),也不允许第七个(最后一个)位置有任何数字字符(好)。只是那些可选的第三到第六个字符允许使用字母字符,这让我很伤心。
我希望这是足够的信息(或者可能不是太多)。任何帮助将不胜感激。谢谢!!!
【问题讨论】:
标签: javascript regex