如何匹配特定字符后的文本?

时间:2014-08-08 19:00:09

标签: javascript regex

我有一个看起来像这样的网址:

http://mysite/#/12345

如何在/#/之后使用正则表达式检索文本,这本质上是我想在我的javascript应用程序中使用的标记?

感谢。

4 个答案:

答案 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()方法尝试使用正则表达式。

通过括在括号内(...)

获取索引1中的匹配组
var str='http://mysite/#/12345';
alert(str.match(/\/#\/(.*)$/)[1]);

enter image description here

答案 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);

FIDDLE

或者你可以拆分并弹出它

var result = url.split('#/').pop();