什么是这个reg ex错了

Mat*_*iby 0 javascript regex

我有这个注册表

var id = url.match(/(\d+)\/\d+$/)[1]; 
Run Code Online (Sandbox Code Playgroud)

那就是解析网址

http://whatever.com/something/70/48/359
Run Code Online (Sandbox Code Playgroud)

它正在抓住48,但它失败了

http://whatever.com/something/70/48/359#
Run Code Online (Sandbox Code Playgroud)

为什么#搞乱了正则表达式

Gum*_*mbo 5

请尝试使用此正则表达式:

/(\d+)\/\d+(?:$|[?#])/
Run Code Online (Sandbox Code Playgroud)

这不仅匹配字符串的结尾,还匹配query(?)和fragment(#)的分隔符.

如果您url恰好是文档的位置(例如location.href),请更好地使用location.pathname.


And*_*eKR 5

由于...... \d+$意味着"在最后一个数字之后,URL的结尾必须立即跟随"(没有#inbetween).