我想匹配网址中的一些关键字
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,我能做什么呢?
答案 0 :(得分:0)
您可以使用^
来匹配字符串的开头,使用$
来匹配结尾:
var greenPictures = /^(redwoods-are-big.jpg|greendwoods-are-small.jpg)$/;
var existsGreen = greenPictures.test(parentURL);
但是因为document.referrer
不等于以太redwoods-are-big.jpg
或greendwoods-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
变量中的字符大小写。