recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Impossible de correspondre à l'expression régulière de la pré-vérification avant js?

Objectif : Supprimez les espaces à droite des accolades.
Les éléments suivants peuvent être utilisés :
//Le premier
var a = "Je suis un espace {Je suis un paramètre}. Il y a des espaces devant moi {Je suis un paramètre}. Les espaces devant moi ne le font pas match";
hand_trim1(a);
function hand_trim1 (str){

return str.replace(/(?:\})\s+/g,'}');

}

//Le deuxième
var a = "Je suis un espace {Je suis un paramètre}. Il y a un espace avant {Je suis un paramètre}. L'espace avant moi ne correspond pas";
hand_trim2(a);
function hand_trim2(str){

return str.replace(/}\s+/g,'}');

}

//Le troisième (Pourquoi ça ne correspond pas ???????)
var a = "Je suis un espace {Je suis un paramètre} Il y a un espace devant moi {Je suis un paramètre}" L'espace blanc ne correspond pas ";
hand_trim3(a);
function hand_trim3(str){

return str.replace(/(?=\})\s+/g,'');

}

代言代言2715 Il y a quelques jours809

répondre à tous(1)je répondrai

  • 仅有的幸福

    仅有的幸福2017-06-26 10:58:06

    L'aperçu avant est de largeur nulle, ce qui signifie que la largeur est de 0, mais correspond à une position, tant que la position est satisfaite et ne correspond pas à un contenu spécifique
    (?=})La position correspondante doit être un } après cette position ; (?=})匹配的位置应该是在这个位置后面有一个}
    s+表示从这个位置起,后面跟着空白符;
    所以,满足上面两个条件的位置是这个位置后面的字符即是},又是空白符,因此,这种位置根本不存在,所以不匹配;
    其实这个位置应该是左边是一个},右边是s+s+ signifie partir de cette position, suivi d'un caractère vide Donc, les deux conditions ci-dessus sont remplies ; position est que le caractère après cette position est à la fois > et caractère vide. Par conséquent, cette position n'existe pas du tout, donc elle ne correspond pas En fait, ceci. la position doit être à gauche. C'est un }, et le côté droit est s+, mais js n'a pas d'assertion

    négative🎜 et ne peut pas prédire le type de caractère sur le côté gauche. 🎜

    répondre
    0
  • Annulerrépondre