本文详细介绍在 JavaScript 中提取 URL 末尾数字 ID 的四种常用方法。包括利用正则表达式匹配文件扩展名前的数字、通过 split 分割路径数组、使用 substring 截取子串,以及处理包含查询参数的复杂 URL。每种方法均提供完整代码示例与注意事项,帮助开发者根据实际场景选择最优方案。
基于正则表达式的匹配方法
第一种方法是利用正则表达式进行匹配。
<script>
var strUrl = "//www.jb51.net/article/825.htm";
url = strUrl.match(/\/(\d*)\.(html|htm|shtm|shtml)/);
document.write(url[1]);
</script>补充说明:
var re = new RegExp(".*/(\\d+)\\.html","ig");
var _aid = "-1";
if(re.exec("https://www.jb51.net/article/pc/1111.html") != null){
_aid = RegExp.$1
}以下是实际应用的代码示例:
<script>
var strUrl = location.href;
url = strUrl.match(/\/(\d*)\.(html|htm|shtm|shtml)/);
document.write(url[1]);
</script>基于数组分割的处理方式
第二种方法是直接将页面 URL 路径分割为数组,再使用 split 方法处理。
<script>
var strUrl = location.href;
var arrUrl=strUrl.split("/");
var strPage=arrUrl[arrUrl.length-1];
alert(strPage.replace(".html","").replace(".htm",""));
</script>基于 substring 的截取方案
第三种方法是使用 substring 函数进行截取。
<script>
var strUrl = window.location.href;
str=strUrl.substring(strUrl.lastIndexOf("/") + 1)
alert(str.replace(".html","").replace(".htm",""));
</script>关于 substring 的定义和用法:
substring() 方法用于提取字符串中介于两个指定下标之间的字符。
其语法格式如下:
stringObject.substring(start,stop)
| 参数 | 描述 |
|---|---|
| start | 必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。 |
| stop | 可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。 如果省略该参数,那么返回的子串会一直到字符串的结尾。 |
返回值说明:
该方法返回一个新的字符串,该字符串包含 stringObject 中从 start 位置到 stop-1 位置的所有字符,其长度等于 stop 减去 start。
具体说明:
substring() 返回的子串包含 start 处的字符,但不包含 stop 处的字符。
如果参数 start 与 stop 相等,则返回一个空字符串(长度为 0)。若 start 大于 stop,该方法会在提取前自动交换这两个参数。
处理含查询参数的复杂 URL
第四种方法专门针对页面中包含 ? 等异常参数的情况。
例如 URL 为 //www.jb51.net/article/333.htm?path=/asdf/ddd 时:
<script>
var strUrl = "http://www.jb1.net/article/222.htm";
//获取当前页面名称
//var strUrl=window.location.href;
var arrUrl=strUrl.split("/");
var strPage=arrUrl[arrUrl.length-1];
if(strPage.indexOf("?")>-1){
var pageName=strPage.split("?");
strPage=pageName[0];
}
alert(strPage.replace("html","").replace(".htm",""));
</script>到此这篇关于 js 获取 url 页面 id,也就是最后的数字文件名的文章就介绍到这了,更多相关js获取url页面id内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!