我有像
这样的网址我的javascript bookmarklet看起来如下所示。
javascript:(function(){javascript:var location_pathname = document.location.href;var ggId = location_pathname.match(/^[0-9]{7}$/)[1]; window.open('http://localhost/script.php?id='+ggId, '_blank')})()
如何匹配每个网址中的7个数字?以上是我的脚本,但它不起作用。如果我将示例与"/\/something\/(.*)/"
代码相匹配并打开新标签http://localhost/script.php?id=9303033,但仅在某些情况下有效。
答案 0 :(得分:1)
如果斜杠(/)之后正好有7位数,而另一个斜杠或EOL则正确,那么正确的RegEx是
var re = /\/(\d{7})\/?|$/; //note (\d{7}) This is what will be captured
//tests
'http://www.gg.omg/whatever/4303013'.match(re)[1]; //4303013
'http://www.gg.omg/whatever/4303013/maybe'.match(re)[1]; //4303013
'http://www.gg.omg/whatever/430301'.match(re)[1]; //undefined
答案 1 :(得分:0)
在正则表达式的开头删除^,在结尾处删除$,以匹配网址的任何位置。
location_pathname.match(/([0-9]{7})/)[1];