Maison > Questions et réponses > le corps du texte
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,'');
}
仅有的幸福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