如何缩短此正则表达式?

时间:2013-07-19 04:56:54

标签: javascript regex expression

我想允许字符串以大写字母开头,前两个字符包含 NL ,但其他字母如 DE,BE 等..

以下是我在javascript中的表现方式

str.substring(0,2).match(/^[ABCDEFGHIJKLMOPQRSTUVWXYZ]+[ABCDEFGHIJKMNOPQRSTUVWXYZ]+$/)

我想将它缩短到范围。我尝试使用这些范围表达式[A-MO-Z],[A-M] [O-Z] +但不使用它们。

编辑: 我试过这些表达但是它们不起作用

str.substring(0,2).match(/^[A-MO-Z]+[A-KM-Z]+$/)
str.substring(0,2).match(/^[A-M][O-Z]+[A-K][M-Z]+$/)
str.substring(0,2).match(/^([A-M][O-Z])+([A-K][M-Z])+$/)

1 个答案:

答案 0 :(得分:5)

这是一个负面展望的主要用例:

str.match(/^(?!NL)[A-Z]{2}/)

请注意,这将允许NA, NB, NC, ...AL, BL, CL, ...,而不是NL。{/ p>