JavaScript convertir PascalCase en underscore case

Comment puis-je convertir PascalCase chaîne underscore_case chaîne de caractères? J'ai besoin de conversion de points à souligner.

par exemple. convertir

TypeOfData.AlphaBeta

en

type_of_data_alpha_beta
36
demandé sur John Weisz 2015-05-29 07:37:53

5 réponses

Vous pouvez essayer les étapes ci-dessous.

  • capturez toutes les lettres majuscules et faites correspondre le caractère de point optionnel précédent.

  • convertissez ensuite les majuscules capturées en minuscules, puis revenez en arrière pour remplacer la fonction avec un _ comme caractère précédent. Ceci sera réalisé en utilisant la fonction anonyme dans la partie de remplacement.

  • ceci remplacerait la majuscule de départ lettre à _ + lowercase_letter.

  • enfin, supprimer les underscores de départ vous donnera la sortie désirée.

    var s = 'TypeOfData.AlphaBeta';
    console.log(s.replace(/(?:^|\.?)([A-Z])/g, function (x,y){return "_" + y.toLowerCase()}).replace(/^_/, ""));
    

OR

var s = 'TypeOfData.AlphaBeta';
alert(s.replace(/\.?([A-Z])/g, function (x,y){return "_" + y.toLowerCase()}).replace(/^_/, ""));

aucun moyen de l'arrêter, pour quand un mot est en majuscules. par exemple. MotorRPM en motor_rpm au lieu de