0
votes

Comment JavaScript regex fonctionne sur cette phrase de cas rachidienne

J'ai suivi de la fucntion JavaScript:

p>

function spinalCase(str) {
  str = str.replace(/([a-z])([A-Z])/g, '$1 $2');
  console.log(str);
}

spinalCase('thisIsSpinalTapIp');


2 commentaires

La regex analyse chaque compte d'une séquence d'une lettre minuscule et majuscule, stocke le minuscule dans 1 $ et la majuscule dans 2 $ ... alors il remplace 1 $ 2 $ 2 avec 1 $ 2 $ , par exemple, insère un espace


Il n'y a qu'une seule regex avec 2 groupes de capture et elle insère de l'espace entre une lettre minuscule et majuscule


3 Réponses :


2
votes

La regex analyse chaque compte d'une séquence d'une lettre minuscule et majuscule, stocke la minuscule dans 1 $ et la majuscule dans 2 $ Remplace $ 1 $ 2 avec 1 $ 2 $ , par exemple, insère un espace.

suivant match:

thi siss Pina lt a pi p

Donc, vous auriez la collection ['si', 'ss', 'lt', 'pi'] où les espaces seront ajoutés entre


0 commentaires

4
votes

Casser-le:

([A-Z]) correspond à une lettre minuscule

([A-Z]) correspond à une lettre majuscule

/ ([a-z]) ([A-Z]) / g Combinaison correspond à des minuscules suivies d'une lettre majuscule avec le drapeau global qui correspondra à toutes ces occurrences.

Lorsque de tels occurrences sont trouvés, ils sont remplacés par 1 $ 2 $ (Voici 1 $ la lettre minuscule de groupe et 2 $ est une lettre majuscule de groupe 2 séparé par un espace).

Voyons maintenant comment ça marche pour ThisisspinaltaPip

La regex ci-dessus correspondra à SI , ss , lt , et pi

et remplacez-les avec S i , s s s , l t , et p i

La chaîne devient donc ceci est le robinet spinal IP

Ce lien vous aidera à la visualiser Regex


4 commentaires

Grande explication :)


Donc, cela remplace toute la petite lettre de la lettre majuscule?


@creAreAtiveArtBD Il ne remplace pas une petite lettre avec Capital One. Au lieu de cela, il remplace la combinaison d'une lettre petite et majuscule en ajoutant un espace entre eux par ex. il sera remplacé par i t


Eh bien, alors comment il ressemble à ce résultat Ceci est Spinal Tap IP ?



0
votes

Vous avez créé deux groupes Nom 1 $ et 2 $ par parenthèses dans la regex. 1 $ et 2 $ se réfèrent aux chaînes correspondues par ces groupes.

et ces chaînes remplaceront 1 $ et 2 $ dans le deuxième paramètre de chaîne.replace.

Le nom de chaque groupe est comme $ numéro, le nombre augmentera par la séquence de parenthèses dans la regex.


0 commentaires