正则表达式匹配带破折号的数组单词

时间:2014-03-31 11:44:25

标签: javascript regex

我想匹配网址中的一些关键字

var parentURL = document.referrer;

var greenPictures = /redwoods-are-big.jpg|greendwoods-are-small.jpg/;

var existsGreen = greenPictures.test(parentURL);

var existsGreen在找到greendwoods-are-small.jpg时也会变为true,但是当它找到small.jpg

如果有正确的greendwoods-are-small.jpg,我能做什么呢?

3 个答案:

答案 0 :(得分:0)

您可以使用^来匹配字符串的开头,使用$来匹配结尾:

var greenPictures = /^(redwoods-are-big.jpg|greendwoods-are-small.jpg)$/;

var existsGreen = greenPictures.test(parentURL);

但是因为document.referrer不等于以太redwoods-are-big.jpggreendwoods-are-small.jpg所以我会匹配/something.png[END]

var greenPictures = /\/(redwoods-are-big\.jpg|greendwoods-are-small\.jpg)$/; // <-- See how I escaped the / and the . there? (\/ and \.)
var existsGreen = greenPictures.test(parentURL);

答案 1 :(得分:0)

Dashes在字符集之外没有任何特殊含义,例如:

[a-f], [^x-z] etc.

正则表达式中具有特殊含义的字符为|.

/redwoods-are-big.jpg|greendwoods-are-small.jpg/
  • |表示或。
  • .匹配任何字符,但换行符\n \r \u2028\u2029

换句话说:您的代码中还有其他内容。

更多关于RegExp


如果您努力编写正则表达式,那么这些页面可能会非常有用:

答案 2 :(得分:0)

试试这个正则表达式:

/(redwoods-are-big|greendwoods-are-small)\.jpg/i

我使用i标志来忽略parentURL变量中的字符大小写。

描述

Regular expression visualization

演示

http://regex101.com/r/aI4yJ6