为什么正则表达式方括号不能与“或”语句一起使用?

时间:2015-02-02 10:34:49

标签: javascript regex

我正在使用Javascript来测试用户是否输入了“dev”或“development”这个词。

我使用/^[dev|development]$/.test( user_input );返回了错误的错误。

目前我正在使用/^dev$|^development$/.test( 'developmentt' );,它会返回正确的结果。

但为什么我使用方括号注释会得到错误的结果?

Here's a demo

1 个答案:

答案 0 :(得分:2)

方括号不适合对单词进行OR运算。您需要将它们放在由()

分隔的|
/^(dev|development)$/.test( user_input );

OR

/^dev(?:elopment)?$/.test( user_input );

OR函数适用于字符类中存在的每个字符。因此[dev|development]匹配dev|de,..... < / p>