Javascript正则表达式检查URL是否包含一个单词而不包含另一个单词

Javascript正则表达式检查URL是否包含一个单词而不包含另一个单词,javascript,regex,url,location,href,Javascript,Regex,Url,Location,Href,如果一个url包含一个特定的单词,怎么能同时检查它是否包含一个单词呢?如果我尝试显示一个示例,效果会更好: 如果URL中有单词“pan”,请执行某些操作,但是如果URL中有单词“panini”,请不要执行任何操作: if (/pan/.test(self.location.href) && (/panini/.test(self.location.href) == null) {...} 上面的第一部分工作正常,但添加了第二个帕尼尼部分后,它当然不会工作,有人有什么想法吗?返

如果一个url包含一个特定的单词,怎么能同时检查它是否包含一个单词呢?如果我尝试显示一个示例,效果会更好:

如果URL中有单词“pan”,请执行某些操作,但是如果URL中有单词“panini”,请不要执行任何操作:

if (/pan/.test(self.location.href) && (/panini/.test(self.location.href) == null)  {...}
上面的第一部分工作正常,但添加了第二个帕尼尼部分后,它当然不会工作,有人有什么想法吗?

返回bool,所以只需使用
操作员:

if (/pan/.test(self.location.href) && !(/panini/.test(self.location.href))  {...}
这可以简化使用(应该更快):

此外,单词的正则表达式测试可以使用单词边界,
\b

/\bpan\b/.test(self.location.href)
//Will match "pan", "pan and food", but not "panini"
返回布尔值,因此只需使用
操作员:

if (/pan/.test(self.location.href) && !(/panini/.test(self.location.href))  {...}
这可以简化使用(应该更快):

此外,单词的正则表达式测试可以使用单词边界,
\b

/\bpan\b/.test(self.location.href)
//Will match "pan", "pan and food", but not "panini"

JavaScript的
indexOf
可能会解决您的问题

var h=location.href;
if (h.indexOf("pan")>-1 && h.indexOf("panini")==-1) // do stuff

JavaScript的
indexOf
可能会解决您的问题

var h=location.href;
if (h.indexOf("pan")>-1 && h.indexOf("panini")==-1) // do stuff

您可以按如下方式使用
indexOf
属性:

url = window.location.href;
if ((url.indexOf("pan") >= 0) && (url.indexOf("panini") < 0)
url=window.location.href;
如果((url.indexOf(“pan”)>=0)和&(url.indexOf(“panini”)<0)

您可以使用
indexOf
属性,如下所示:

url = window.location.href;
if ((url.indexOf("pan") >= 0) && (url.indexOf("panini") < 0)
url=window.location.href;
如果((url.indexOf(“pan”)>=0)和&(url.indexOf(“panini”)<0)

您还可以使用负前瞻,JS在所有主流浏览器中都支持负前瞻

if ((/pan(?!ini)/).test(myurl)) {

/pan(?!ini)/
正则表达式匹配任何不后跟“ini”的“pan”。

您还可以使用负前瞻,JS在所有主要浏览器中都支持负前瞻

if ((/pan(?!ini)/).test(myurl)) {

/pan(?!ini)/
正则表达式匹配任何不后跟“ini”的“pan”.

谢谢现在我饿了找帕尼尼我看不出你引用的代码怎么会做不到你所描述的。请举例说明它在哪里做了与你所希望的不同的事情。因为它返回false,而不是null谢谢现在我饿了找帕尼尼我看不到你引用的代码怎么会做不到你所描述的。请举例说明它的功能与您想要的有所不同。因为它返回的是false,而不是null,所以您的绘制速度更快!:)@ToddN您能再试一次吗?我错过了一个
。啊,谢谢!因此,通过添加感叹号
它基本上不会提取包含单词panini的if语句?这是经过测试的,适用于多个我不想要的单词,谢谢!该死的,你抽签快多了!:)@托顿,你能再试一次吗?我错过了一个
。啊,谢谢!因此,通过添加感叹号
它基本上不会提取包含单词panini的if语句?这是经过测试的,适用于多个我不想要的单词,谢谢!