首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript Regex检查URL是否包含一个单词而不包含另一个单词

Javascript Regex检查URL是否包含一个单词而不包含另一个单词
EN

Stack Overflow用户
提问于 2011-09-01 19:55:48
回答 5查看 5K关注 0票数 1

如果url包含一个特定的单词,那么如何检查它,同时检查它是否包含一个单词?如果我尝试展示一个例子,那就更好了:

如果网址中有'pan‘这个词,那么做些什么,但是当'panini’这个词在URL中时,不要做任何事情:

代码语言:javascript
复制
if (/pan/.test(self.location.href) && (/panini/.test(self.location.href) == null)  {...}

上面的第一部分工作的很好,但是第二个帕尼尼部分补充说它当然不会工作,有人有什么想法吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-09-01 19:58:53

test返回一个bool,所以只需使用!操作符:

代码语言:javascript
复制
if (/pan/.test(self.location.href) && !(/panini/.test(self.location.href))  {...}

这可以简化为使用indexOf (应该更快):

代码语言:javascript
复制
if (self.location.href.indexOf("pan") > -1 && self.location.href.indexOf("panini") == -1)
{...}

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

代码语言:javascript
复制
/\bpan\b/.test(self.location.href)
//Will match "pan", "pan and food", but not "panini"
票数 6
EN

Stack Overflow用户

发布于 2011-09-01 20:01:11

JavaScript的indexOf可以解决您的问题。

代码语言:javascript
复制
var h=location.href;
if (h.indexOf("pan")>-1 && h.indexOf("panini")==-1) // do stuff
票数 0
EN

Stack Overflow用户

发布于 2011-09-01 20:01:57

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

代码语言:javascript
复制
url = window.location.href;
if ((url.indexOf("pan") >= 0) && (url.indexOf("panini") < 0)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7275754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档