web-dev-qa-db-fra.com

Javascript Regex - Correspondance entre caractères après une certaine phrase

Je me demandais comment utiliser une expression rationnelle pour faire correspondre une phrase qui vient après une certaine correspondance. Comme:

var phrase = "yesthisismyphrase=thisiswhatIwantmatched";
var match = /phrase=.*/;

Cela correspondra du phrase= à la fin de la chaîne, mais est-il possible de tout obtenir après le phrase= sans avoir à modifier une chaîne ?

32
bryan sammon

Vous utilisez groupes de capture (indiqué par des parenthèses).

Lorsque vous exécutez l'expression régulière via la fonction match ou exec, le système retourne un tableau constitué des sous-chaînes capturées par les groupes de capture. Vous pouvez ensuite accéder à ce qui a été capturé via ce tableau. Par exemple.:

var phrase = "yesthisismyphrase=thisiswhatIwantmatched"; 
var myRegexp = /phrase=(.*)/;
var match = myRegexp.exec(phrase);
alert(match[1]);

ou

var arr = phrase.match(/phrase=(.*)/);
if (arr != null) { // Did it match?
    alert(arr[1]);
}
50
DVK
phrase.match(/phrase=(.*)/)[1]

résultats

"thisiswhatIwantmatched"

Les crochets spécifient un soi-disant groupe de capture. Le contenu des groupes de capture est placé dans le tableau résultant, à partir de 1 (0 est la correspondance complète).

10
thejh

Ce n'est pas si difficile, supposons simplement que votre contexte est:

const context = https://medicoads.net/pa/GIx89GdmkABJEAAA+AAAA

Et nous voulons avoir le modèle après pa/, utilisez donc ce code:

const pattern = context.match(/pa\/(.*)/)[1];

Le premier élément comprend pa/, mais pour le deuxième élément de regroupement est sans pa/, vous pouvez utiliser chacun ce que vous voulez.

0
AmerllicA

Laisse essayer ceci, j'espère que ça marche

var p = /\b([\w|\W]+)\1+(\=)([\w|\W]+)\1+\b/;
console.log(p.test('case1 or AA=AA ilkjoi'));
console.log(p.test('case2 or AA=AB'));
console.log(p.test('case3 or 12=14'));

0
Bao Mai