var pattern = /(?<=?)(.*?)(?==)/;
引发"无效量词"错误。
我试过:
var regexp = new RegExp("(?<=?)(.*?)(?==)");
也无济于事。我试图转义 = 符号和反斜杠。我不知所措。
我该如何解决这个问题?
如前所述,JavaScript 不支持 lookbehinds。您可能会在此处找到有用的解决方法:http://blog.stevenlevithan.com/archives/mimic-lookbehind-javascript
看起来,javascript Regexp不支持(?<...)
完全不支持后视。
http://www.regular-expressions.info/javascript.html
如果在 ?' 之后添加 :它应该工作。
var pattern = /(?:<=?)(.*?)(?:==)/;
需要后看? 您正在尝试匹配?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 进行哈希处理并应用与"?" + 字符串 + "="匹配的模式时......它返回一个数组...它很混乱,但它工作得很好。
var pattern = /(?)(.*?)(=)/;
var urlType = urlObj.hash.match(pattern)[2];