var pattern = /(?<=\?)(.*?)(?=\=)/;
正在拋出「無效量詞」錯誤。RegEx無效量詞
我已經試過:
var regexp = new RegExp("(?<=\?)(.*?)(?=\=)");
無濟於事無論是。我試圖逃避=標誌和反斜槓。我很茫然。
我該如何解決這個問題?
var pattern = /(?<=\?)(.*?)(?=\=)/;
正在拋出「無效量詞」錯誤。RegEx無效量詞
我已經試過:
var regexp = new RegExp("(?<=\?)(.*?)(?=\=)");
無濟於事無論是。我試圖逃避=標誌和反斜槓。我很茫然。
我該如何解決這個問題?
如果添加:在年代後它應該工作。
var pattern = /(?:<=\?)(.*?)(?:=\=)/;
'?:'解散一個組。 OP希望使用他從其他RegEx實現中瞭解的look-behind。 – 2012-03-06 19:54:47
如前所述,JavaScript不支持lookbehinds。您可能會在此處找到有用的解決方法:http://blog.stevenlevithan.com/archives/mimic-lookbehind-javascript
爲什麼您需要後視?你試圖匹配?data=
類型模式吧?不要只是看爲?
,吃吧。 :)
var data = "halsfdkjad;slfkjasdfj?data=uhtooiuhiouh?oiurhoiuhhhjkjj=9";
var myregexp = /\?(.*?)(?=\=)/g;
var match = myregexp.exec(data);
var result = "Matches found:\n";
while (match != null) {
result += "match:" + RegExp.$1 + '\n';
match = myregexp.exec(data);
}
alert(result);
我找到了解決方法。顯然,當我散列urlObj並應用匹配「?」的模式時+ string +「=」...它返回一個數組......它很雜亂,但它完美的工作。
var pattern = /(\?)(.*?)(\=)/;
var urlType = urlObj.hash.match(pattern)[2];
JavaScript不支持後視。 – 2012-03-06 19:52:39
我找到了解決方法。顯然,當我散列urlObj並應用匹配「?」的模式時+ string +「=」...它返回一個數組...所以它很混亂,但它完美的工作。 'var pattern = /(\?)(.*?)(==)/; \t var urlType = urlObj.hash.match(pattern)[2];' – TSNev 2012-03-06 20:38:00
如果你只是想這樣,'/\?(.*?)=/。exec(urlObj.hash)[1]'也可以工作。 – 2012-03-06 20:41:21