解码JS正则表达式

时间:2014-08-12 13:57:55

标签: javascript regex

我正在阅读一些遗留代码,我遇到了这个常规快递:

var REGEX_STRING_REGEXP = /^\/(.+)\/([a-z]*)$/; 

我对这个正则表达式的含义感到有些困惑。

到目前为止,我总结了以下内容:

  1. 以/
  2. 开头
  3. 然后是任何字符(数字,字母,符号,空格)
  4. 然后是正斜杠
  5. 以字母字符结尾
  6. 有人可以建议吗?

2 个答案:

答案 0 :(得分:2)

您可以使用Regexper之类的工具来显示正则表达式。如果我们将正则表达式传递给Regexper,我们将获得以下可视化:

Example

Direct link to Regexper result

答案 1 :(得分:1)

正则表达式:/ ^ /(。+)/([a-z] *)$ /

^:将正则表达式锚定到行的开头

(。+):一个或多个单词字符,非单词字符或数字

的实例

([a-z] *):任何单个小写字符a-z

的0个或多个实例

$:将正则表达式锚定到行尾

总之,你的正则表达式希望匹配字符串,它是第一个forwardslash,然后是1个或多个单词字符实例,非单词字符或数字后跟,然后是另一个forwardslash,然后是0或更多个实例单个小写字符az。最后,由于(。+)和([a-z] *)都在括号中包围,因此当您使用它们执行正则表达式操作时,它们将捕获任何匹配。

我建议转到rubular,将正则表达式^ /(。+)/([az] *)$放在顶部字段中,并在测试字符串框中使用示例字符串来更好地理解字符串将适合该正则表达式。 (/ string / something例如可以与你的正则表达式一起使用)。