Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为URL剥离页面的JavaScript_Javascript_Regex - Fatal编程技术网

为URL剥离页面的JavaScript

为URL剥离页面的JavaScript,javascript,regex,Javascript,Regex,我们有一个javascript函数,用于在内部跟踪页面统计信息。然而,它多次报告的URL包括我们不希望报告的搜索结果页面的页码。报告页面的格式如下: http://www.test.com/directory1/2 http://www.test.com/directory1/subdirectory1/15 http://www.test.com/directory3/1113 相反,我们希望将上述情况报告为: http://www.test.com/directory1 http://ww

我们有一个javascript函数,用于在内部跟踪页面统计信息。然而,它多次报告的URL包括我们不希望报告的搜索结果页面的页码。报告页面的格式如下:

http://www.test.com/directory1/2
http://www.test.com/directory1/subdirectory1/15
http://www.test.com/directory3/1113
相反,我们希望将上述情况报告为:

http://www.test.com/directory1
http://www.test.com/directory1/subdirectory1
http://www.test.com/directory3
请注意,上面编号的“目录”和“子目录”名称仅用于示例目的,实际的子目录名称都不同,不一定在目录名称的末尾包含数字,并且可以有很多层次

目前,我们的JavaScript函数使用以下代码生成这些URL:

var page = location.hostname+document.location.pathname;
我相信我们需要将JavaScript替换函数与一些正则表达式结合使用,但我完全不知道这会是什么样子。任何帮助都将不胜感激


提前谢谢

我认为您需要使用带有重写规则的.htaccess来更改url的外观,但是我仍在查看javascript是否可以使用此选项。当我发现更多信息时,会重新发布吗

编辑*

lastIndexOf只会给你这个职位,因此你仍然需要更换。例:

var temp=第页子字符串(第页lastIndexOf(“/”),第页长度-1)

第页=第页。替换(临时“”


不幸的是,我在编码方面没有那么先进,所以在其他答案中可能有更高效的编码。很抱歉给您带来不便。

我认为您需要使用带重写规则的.htaccess来更改url的外观,但是我仍在查看javascript是否可以使用此选项。当我发现更多信息时,会重新发布吗

编辑*

lastIndexOf只会给你这个职位,因此你仍然需要更换。例:

var temp=第页子字符串(第页lastIndexOf(“/”),第页长度-1)

第页=第页。替换(临时“”


不幸的是,我在编码方面没有那么先进,所以在其他答案中可能有更高效的编码。很抱歉给我的初始答案带来不便。

您可以做的是找到“/”的最后一个索引,然后使用子字符串函数。

您可以做的是找到“/”的最后一个索引,然后使用子字符串函数。

如果您只是删除最后一个斜杠+内容,您不确定是否需要正则表达式


我可能会使用它来搜索最后一个“/”字符,然后从字符串的开头到该索引执行一个子字符串。

如果只是删除最后一个斜杠+内容,则不确定是否需要正则表达式


我可能会使用它来搜索最后一个“/”字符,然后从字符串的开头到该索引执行一个子字符串。

我想您需要这样:


var page=location.href.substring(0,location.href.lastIndexOf(“/”)

我想你想要这个:


var page=location.href.substring(0,location.href.lastIndexOf(“/”)

您可以使用正则表达式:

document.location.pathname.replace(/\/\d+$/, "");

子字符串
lastIndexOf
解决方案不同,如果路径仅由数字组成,则这将去除路径的末端。

您可以使用正则表达式:

document.location.pathname.replace(/\/\d+$/, "");
子字符串
lastIndexOf
解决方案不同,如果路径仅由数字组成,则这将去除路径的末端。

这样如何:

var page = location.split("/");
page.pop();
page = page.join("/");
这个怎么样:

var page = location.split("/");
page.pop();
page = page.join("/");

@贾斯汀-我不想实际更改网站访问者的页面URL。相反,我想更新我们的内部跟踪JavaScript,以便在报告给后端跟踪脚本时去掉包含它们的URL的页码。JavaScript调用脚本并报告页面URL。它应该是一个相对简单的正则表达式,但我不确定它看起来像什么。谢谢你的帮助@拉塞尔最后的索引只会给你这个位置,因此你仍然需要替换。例如:var temp=page.substring(page.lastIndexOf(“/”),page.length-1);第页=第页。替换(临时“”;不幸的是,我在编码方面没有那么先进,所以在其他答案中可能有更高效的编码。对于我最初的回答给您带来的不便,我深表歉意。@Justin-我不想实际更改网站访问者的页面URL。相反,我想更新我们的内部跟踪JavaScript,以便在报告给后端跟踪脚本时去掉包含它们的URL的页码。JavaScript调用脚本并报告页面URL。它应该是一个相对简单的正则表达式,但我不确定它看起来像什么。谢谢你的帮助@拉塞尔最后的索引只会给你这个位置,因此你仍然需要替换。例如:var temp=page.substring(page.lastIndexOf(“/”),page.length-1);第页=第页。替换(临时“”;不幸的是,我在编码方面没有那么先进,所以在其他答案中可能有更高效的编码。很抱歉给您带来不便。@Andy-谢谢,这正是我需要的@安迪-谢谢,这正是我需要的!