首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用javascript选择art-8,而不是cart-8

如何使用javascript选择art-8,而不是cart-8
EN

Stack Overflow用户
提问于 2010-11-01 04:39:15
回答 4查看 55关注 0票数 0

我在javascript中有以下if语句。我的目标是在网址中有艺术-8的页面。

示例url如下所示:

http://www.mywebsite.com/art-8.asp?id=435&iPageID=43

然而,这将获得一个带有cart-8的url,而我不想这样。

我只想在url中选择art-8,而不是cart-8。

我该怎么改呢?

代码语言:javascript
复制
if (location.pathname.indexOf('art-8') > 0){

...............

我需要正则表达式吗?

提前谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-11-01 04:47:30

代码语言:javascript
复制
if (/\/art-8\/?$/.test(location.pathname)) {
    ...
}

将匹配任何以/art-8/art-8/结尾的路径名。或将路径名拆分为其组成部分:

代码语言:javascript
复制
var parts = location.pathname.split('/').slice(1);
if(parts[parts.length - 1] == '') parts = parts.slice(0, -1);
if(parts[parts.length - 1] == 'art-8') {
    ...
}

EDIT:如果art-8不需要在末尾,但前面有一个斜杠,则为

代码语言:javascript
复制
if (/\/art-8/.test(location.pathname)) {
    ...
}

或者,如果前面不一定有斜杠,但您只想查找前面没有c的路径(路径名总是以斜杠开头,所以前面总是至少有一个字符,这样就可以了):

代码语言:javascript
复制
if (/[^c]art-8/.test(location.pathname)) {
    ...
}

请注意,路径名不包括?及其后面的内容,所以如果您在8后面添加.asp,那么即使是我给出的前两个示例也应该适用于您给出的特定示例URL。

票数 1
EN

Stack Overflow用户

发布于 2010-11-01 04:44:06

这个regexp怎么样?

代码语言:javascript
复制
[^c]art-8
票数 0
EN

Stack Overflow用户

发布于 2010-11-01 04:55:08

如果您只关心单个路径段,并且只想查找包含至少一个与'art-8‘完全相等的路径段的路径,那么您可以这样做:

代码语言:javascript
复制
if (location.pathname.indexOf('/art-8/') > 0) {

这将适用于所有情况,除了'art-8‘在末尾没有斜杠的情况。对于特殊情况,您可以添加另一个检查,去掉尾部的斜杠,并包括一个检查,以确保索引将其放在行尾。

但是,如果您使用的是具有RegExp支持的现代浏览器,那么您所需要的就是:

代码语言:javascript
复制
var rx=new RegExp("/art-8(/|$)");
if( rx.test(location.pathname) ) {
  ...
}

w3schools具有用于javascript RegExp对象的fairly comprehensive reference

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4064992

复制
相关文章

相似问题

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