说,如果document.location等于http://www.example.com
或http://www.example.com/example/anythinghere/
,我希望条件为真,但如果位置不完全适合,则为FALSE,例如http://www.example.com/example/anythinghere/sdjfdfasdfaf
将返回FALSE。
当然,我写的是:
if(document.location == "http://www.example.com/" ||
document.location == "http://www.example.com/example/*/")
但是,我知道好的'星号通配符不起作用,而且,作为一个正则表达式的业余爱好者,我无法找到正确的设置来寻找与模式完全匹配的东西。对于条件的后半部分你会建议什么?
答案 0 :(得分:1)
以下正则表达式应该这样做:
/^http:\/\/www\.example\.com\/(?:example\/[^\/]+\/)?$/
这是http://www.example.com/
的起始部分,后跟可选的/example/somecharacters/
。
用法:
var re = /^http:\/\/www\.example\.com\/(?:example\/[^\/]+\/)?$/;
if(re.test(document.location.href) {
}
答案 1 :(得分:1)
尝试使用匹配:
regex = /^http:\/\/www.example.com\/(?:example\/(?:[^\/]+\/)?)?$/
特别是这说:
如果您再申请,我认为它涵盖了您的所有情况:
regex.exec("http://www.example.com/example/anythinghere/") // matches
regex.exec("http://www.example.com/example/anythinghere") // doesn't match (no trailing slash)
regex.exec("http://www.example.com/example/anythinghere/qwe") // doesn't match (extra end chars)
regex.exec("http://www.example.com/exam") // doesn't match (no subdir)
regex.exec("http://www.example.com/") // matches
答案 2 :(得分:1)
尝试以下方法:
if(document.location == "http://www.example.com/" ||
/^http:\/\/www.example.com\/example\/[^\/]+\/?$/.test(document.location))
将测试您的网址是否与http://www.example.com/
完全匹配,或者是否使用正则表达式查看其是否与http://www.example.com/example/ANYTHING_HERE_EXCEPT_FORWARD-SLASH/
匹配。
答案 3 :(得分:0)
尝试正则表达式,只有[a-zA-Z]+
等字母,否则http://www.example.com/example/;:ª*P=)#/")#/
将有效
http://www.example.com/example/qwerty/uiop/
也有效吗?以/
结尾但有两个中间级别。
答案 4 :(得分:0)
您可以使用基于前瞻性的正则表达式:
m = location.href.matches(/www\.example\.com\/(?=example\/)/i);