如果网址包含特定字词,如何检查网址,还检查网页是否包含单词?如果我尝试显示一个例子,它会更好:
如果网址中包含“平底锅”字样,请执行操作,但是当“ panini ”字样在网址中时,请不要执行任何操作:
if (/pan/.test(self.location.href) && (/panini/.test(self.location.href) == null) {...}
上面的第一部分工作正常,但添加了第二个panini部分当然不会有用,有人有什么想法吗?
答案 0 :(得分:6)
test
返回一个bool,所以只需使用!
运算符:
if (/pan/.test(self.location.href) && !(/panini/.test(self.location.href)) {...}
这可以简化为使用indexOf
(应该更快):
if (self.location.href.indexOf("pan") > -1 && self.location.href.indexOf("panini") == -1)
{...}
此外,对单词的正则表达式测试可以使用单词边界\b
:
/\bpan\b/.test(self.location.href)
//Will match "pan", "pan and food", but not "panini"
答案 1 :(得分:0)
JavaScript的indexOf
可能会解决您的问题。
var h=location.href;
if (h.indexOf("pan")>-1 && h.indexOf("panini")==-1) // do stuff
答案 2 :(得分:0)
您可以使用indexOf
属性,如下所示:
url = window.location.href;
if ((url.indexOf("pan") >= 0) && (url.indexOf("panini") < 0)
答案 3 :(得分:0)
var myurl = self.location.href;
if (myurl.indexOf("pan") != -1) && (myurl.indexOf("panini") == -1)
{
//do something
}
答案 4 :(得分:0)
您还可以使用负面预测,JS支持所有主流浏览器。
if ((/pan(?!ini)/).test(myurl)) {
/pan(?!ini)/
正则表达式匹配任何未跟随“ini”的“pan”。