Regex 在 url 末尾加上 Javascript 下划线后的数字

Regex a number at the end of a url after a underscore with Javascript

本文关键字:下划线 Javascript 数字 url Regex      更新时间:2023-09-26

我正在尝试从以下形式的网址match'12345':

http://domain.com/folder/title_of_this_12345

到目前为止,我已经尝试过:

var pattern = "_([0-9]+)^";
alert(window.location.pathname.match(pattern));

但我只是返回空?

目的是将数字从字符串末尾到第一个下划线进行正则表达式?

如果将

^替换为 $ ,您的方法将起作用。 ^匹配字符串的开头,而$匹配字符串的结尾(尽管此处不相关,请查看有关存在换行符时$行为的文档)。

非正则表达式解决方案是可能的,但如果链接可能包含也可能不包含数字,则必须检查最后一个令牌是否为数字或检查解析结果是否为 NaN。所以正则表达式可能是这里的合适解决方案。

为了清楚起见,匹配的数字本身是在返回数组的索引 1 处检索的:

alert(str.match(/_('d+)$/)[1]);

尝试

var path = window.location.pathname;
var num = parseInt(path.substr(path.lastIndexOf('_') + 1, 10));

作为不涉及正则表达式的替代方案。

实际上,请参阅 GGG 对这个问题的评论,以获得更简洁的非正则表达式方法。