Javascript / RegExp: L’assertion Lookbehind provoque une erreur «Groupe invalide»

Je fais une simple assertion Lookbehind pour obtenir un segment de l’URL (exemple ci-dessous), mais au lieu d’obtenir la correspondance, j’obtiens l’erreur suivante:

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

Voici le script que je lance:

 var url = window.location.toSsortingng(); 

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 ) ); 

le résultat devrait être write-stuff .

Quelqu’un peut-il expliquer pourquoi ce groupe de regex est à l’origine de cette erreur? Cela ressemble à un RegEx valide pour moi.

Je connais des solutions de rechange pour obtenir le segment dont j’ai besoin, alors il s’agit simplement de m’aider à comprendre ce qui se passe ici plutôt que de trouver une solution alternative.

Merci d’avoir lu.

J.

Je crois que JavaScript ne supporte pas la recherche positive. Vous devrez faire quelque chose de plus comme ça:

  

Javascript ne supporte pas la syntaxe look-behind, donc (?<=) Est ce qui cause l'erreur d'invalidité. Cependant, vous pouvez l'imiter avec différentes techniques: http://blog.stevenlevithan.com/archives/mimic-lookbehind-javascript