JavaScript - 用于字母数字组合的正则表达式

时间:2014-05-20 00:27:07

标签: javascript regex

请原谅我在Regex世界的经验不足。

我正在尝试验证一个如下所示的表达式: AB-4567 PK-1234 。 即一组2个固定字母后跟一个' - ',然后是没有约束长度的数字。

几个有效的例子:

  
      
  1. AB-1234
  2.   
  3. AB-12
  4.   
  5. AB-54643564
  6.   
  7. PK-1
  8.   
  9. PK-341313
  10.   
  11. PK-133
  12.   

所以,它应该从AB或PK开始,然后没有任何空格连字符,然后是任何长度的数字 我尝试使用/(AB)|(PK)[-][0-9]/,但在以下情况下失败

  1. ABPK-1213(两组前缀)
  2. AB-R12U45N(数字的字母,开头,中间或结尾)
  3. 我知道我遗漏了一些非常基本但无法解决的问题。

2 个答案:

答案 0 :(得分:0)

前六个例子

  

/^(AB|PK)-[0-9]+$

如果您想包含另外两种可能性(ABPK-1213,AB-R12U45N),请尝试

  

/^(AB|PK|ABPK|PKAB)-[0-9A-Z]+$

答案 1 :(得分:0)

你快到了那里:

^(?:AB|PK)-[0-9]+$

您的替换角色|位于错误的位置。你拥有它的方式,意味着“匹配AB或匹配PK以及所有这些其他角色。