qu'est-ce que cela signifie?Que fait ce regex javascript?
name = name. replace(/([A-Z]) /g, " -$1");
c'est js.
correction que je voulais dire name = name.replace(/([A-Z]) /g, "-$1");
qu'est-ce que cela signifie?Que fait ce regex javascript?
name = name. replace(/([A-Z]) /g, " -$1");
c'est js.
correction que je voulais dire name = name.replace(/([A-Z]) /g, "-$1");
Cela signifie:
Prenez "nom," la chaîne et de regarder pour chaque lettre majuscule suivi d'un espace. Lorsque vous trouvez une occurrence, remplacez-la par un trait d'union, puis la lettre. Une fois que vous avez fait cela pour toutes les occurrences, assignez cette nouvelle chaîne à la variable "name".
Par exemple, si « nom » est AB CD
avant que cette ligne est exécutée, « name » sera A-BCD
après cette ligne est exécutée.
Je suis presque sûr que le/g signifie que c'est juste à la fin de la chaîne, non? J'ai testé ce très rapide en javascript et: "HEllo MY friends" a été remplacé par "HEllo M -Y friends". – Gazillion
@Matt: Il recherche chaque lettre majuscule suivie d'un espace et l'espace est supprimé. – RoToRa
Javascript peut ne pas reconnaître le drapeau/g. Si c'est quelque chose comme Perl alors/g signifie global. –
Très brièvement, le [A-Z]
signifie correspondre une lettre majuscule, les /g
moyens de bits font globalement (la chaîne d'entrée entière), et le bit -$1
signifie remplacer chaque groupe correspondant X
avec -X
. $1
fait référence au bit entre parenthèses dans le premier argument. Donc, si l'entrée est "HE LLO", vous obtiendrez "H-E LLO". Si l'entrée est "He LL o", vous devriez obtenir "He L-L o".
Je vous recommande de lire les expressions régulières car elles peuvent être très complexes.
Que voulez-vous dire par? $ 1 fait référence au bit entre parenthèses dans le premier argument. – steve
'$ 1' est ce qu'on appelle une" référence arrière ". Chaque paire de parenthèses définit une référence arrière qui peut être référencée plus tard par la syntaxe '$ n'. La première référence arrière est «$ 1», la seconde est «$ 2» et ainsi de suite. Ainsi, la partie "remplacer" de l'expression fait référence à la première référence arrière dans l'expression rationnelle. –
Après (A-Z)
est un espace. Il ne doit donc correspondre que des caractères majuscules suivis d'un espace. Ceux-ci sont remplacés par "-" et le caractère d'origine (référence arrière). Donc pour la chaîne "BONJOUR MES AMIS" le résultat serait HELL -OM -YFriends
. le /g
signifie global, remplacez donc toutes les occurrences.
Essayé en Perl:
$var = "HELLO MY Friends";
$var =´ s/([A-Z])/-$1/g;
print $var . "\n";
Quelle langue est-ce dans? – FrustratedWithFormsDesigner
c'est JavaScript? Regex peut être formaté différemment selon le langage de programmation dans lequel vous le représentez. – zzzzBov