这个正则表达式的含义是什么?

时间:2013-08-19 15:31:31

标签: javascript regex

我需要弄清楚这个正则表达式意味着什么?

"^[A-Z]{3}-[4-7]\d{2,4}\$$"

我认为它以3个字母开头,以2,3或4位数字结尾(也不确定dubble $ -sings)。

但我无法理解这意味着什么:

     -[4-7]  

而且我也不确定为什么最后会有2美元......

感谢

5 个答案:

答案 0 :(得分:11)

  • ^字符串的开头
  • [A-Z]{3}从A到Z的角色重复3次
  • -字符-
  • [4-7]一个4到7位的数字
  • \d{2,4}从0到9的任何数字重复2到4次
  • \$字符$
  • $字符串的结尾

答案 1 :(得分:4)

Regular Expressions 101

转到regex101.com并将正则表达式粘贴到那里......它会向您描述。这样您还可以在浏览器中测试正则表达式。

给一个男人一条鱼,你喂他一天。教一个人钓鱼,你养了一辈子

<强> REGEX

/"^[A-Z]{3}-[4-7]\d{2,4}\$$"/

<强> 描述

" Literal "
^ Start of string
Char class [A-Z] 3 times [greedy] matches:
    A-Z A character range between Literal A and Literal Z
    - Literal -
Char class [4-7]  matches:
    4-7 A character range between Literal 4 and Literal 7
\d 2 to 4 times [greedy] Digit [0-9]
\$ Literal $
$ End of string
" Literal "

可视化 (感谢naomikdebuggex提供

Regular expression visualization

答案 2 :(得分:2)

可视化!

Regular expression visualization

此外,这不是正则表达式(RegExp);那只是一个字符串。

如果你想让它成为RegExp:

var re = new RegExp("^[A-Z]{3}-[4-7]\\d{2,4}\\$$");

或者只是

var re = /^[A-Z]{3}-[4-7]\d{2,4}\$$/;

答案 3 :(得分:0)

-[4-7]表示字符-后跟其中一个字符4567

第一个$被转义 - 因此它在输入中指示$,而第二个$未转义,因此它表示字符串的结尾。

答案 4 :(得分:0)

-:这实际上是减去-字符。

[4-7]:一个数字,4,5,6或7。

\$只是一个转义的$符号,因此它被解释为文本,而不是“字符串结尾”。