我有一个看起来像这样的网址:
http://mysite/#/12345
如何在/#/之后使用正则表达式检索文本,这本质上是我想在我的javascript应用程序中使用的标记?
感谢。
答案 0 :(得分:4)
此处不需要正则表达式,仅String#substr
使用String#indexOf
:
var s = 'http://mysite/#/12345';
var p ='/#/'; // search needle
var r= s.substr(s.indexOf(p) + p.length);
//=> 12345
答案 1 :(得分:1)
尝试使用JavaScript String methods。
var str='http://mysite/#/12345';
alert(str.substring(str.lastIndexOf("/#/")+3));
您也可以使用String'smatch()
方法尝试使用正则表达式。
通过括在括号内(...)
var str='http://mysite/#/12345';
alert(str.match(/\/#\/(.*)$/)[1]);
答案 2 :(得分:1)
让浏览器为您完成
var parser = document.createElement('a');
parser.href = "http://mysite/#/12345";
alert(parser.hash.substring(2)); //This is just to remove the #/ at the start of the string
JSFiddle:http://jsfiddle.net/gibble/uvhqa4yv/
答案 3 :(得分:-1)
使用浏览器解析URL并获取哈希可能是最可靠的,并且可以使用任何有效的URL
var url = 'http://mysite/#/12345';
var ele = document.createElement('a');
ele.href = url;
var result = ele.hash.slice(2);
或者你可以拆分并弹出它
var result = url.split('#/').pop();