var pattern = /(?<=\?)(.*?)(?=\=)/;
正在抛出“无效量词”错误。
我试过了:
var regexp = new RegExp("(?<=\?)(.*?)(?=\=)");
无济于事。我试图逃避=标志和反斜杠。我很茫然。
我该如何解决这个问题?
答案 0 :(得分:2)
正如所说,JavaScript不支持lookbehinds。您可以在此处找到有用的解决方法:http://blog.stevenlevithan.com/archives/mimic-lookbehind-javascript
答案 1 :(得分:0)
答案 2 :(得分:0)
如果你添加:?之后它应该有效。
var pattern = /(?:<=\?)(.*?)(?:=\=)/;
答案 3 :(得分:0)
为什么你需要后视?您是否正在尝试匹配?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);
答案 4 :(得分:0)
我找到了解决方法。显然,当我对urlObj进行散列并应用与“?”匹配的模式时+ string +“=”...它返回一个数组......它很乱,但效果很好。
var pattern = /(\?)(.*?)(\=)/;
var urlType = urlObj.hash.match(pattern)[2];