1

我只需要从 URL 中返回 # 和第一个“/”之间的部分。有时 URL 可能没有“/”。我正在努力在 RegEx 中处理这种情况:

var url1 = '#some';
var url2 = '#some/parameter';

var hash = /#(.*)\//.exec(url1);
alert(hash[1]); // only want 'some'

var hash = /#(.*)\//.exec(url2);
alert(hash[1]); / only want 'some'
4

2 回答 2

2

用于[^/]匹配任何不是 a 的字符/

var hash = /^#([^/]+)/.exec(url2)[1];

一般来说,如果你想为一个量词分组一个子表达式,但又不想捕获它,你可以在子表达式前面加上?:,就像这样:(?:.*)

但是,使用上面的正则表达式,您确实想要捕获([^\]*).

于 2013-08-26T16:39:07.153 回答
2

您可以使用

var hash = yourString.match(/#([^/]+)/)[1];
于 2013-08-26T16:39:23.087 回答