javascript - jquery javascript/regexp: 追溯性断言导致了"无效组"错误

  显示原文与译文双语对照的内容

我正在做一个简单的搜索断言来获得 URL ( 示例 below )的段,但是不得获得以下错误:


Uncaught SyntaxError: Invalid regular expression:/(?<=#!/)([^/]+)/: Invalid group



下面是我正在运行的脚本:


var url = window.location.toString();



url ==http://my.domain.com/index.php/#!/write-stuff/something-else


//lookbehind to only match the segment after the hash-bang.



var regex =/(?<=#!/)([^/]+)/i; 


console.log('test this url: ', url, 'we found this match: ', url.match( regex ) );



结果应该是 write-stuff

谁能解释为什么这个 正规表达式 组导致这个错误? 我看来是一个有效的正规表达式 。

我知道如何获得我需要的分段,这实际上只是帮助我理解这里发生了什么而不是替代解决方案。

感谢你阅读。

J 。

时间: 原作者:

我相信JavaScript不支持正面追溯。 你将需要做更多的事情:


<script>


var regex =/#!/([^/]+)/;


var url ="http://my.domain.com/index.php/#!/write-stuff/something-else";


var match = regex.exec(url);


alert(match[1]);


</script>



原作者:

Javascript不支持语法背后的查找,因此 (?<=) 是导致无效错误的原因。 但是,你可以使用各种技术模仿它: http://blog.stevenlevithan.com/archives/mimic-lookbehind-javascript

原作者:
...