Wie konvertiert man in Javascript Camelcase in Snake Case? [closed]

Lesezeit: 3 Minuten

Benutzeravatar von Badrul
Badrul

Ich möchte eine Zeichenfolge mit TypeScript in Camel-Case in Snake-Case konvertieren.

Denken Sie daran, dass sich die „Schlange-Groß-/Kleinschreibung“ auf den Formatstil bezieht, bei dem jedes Leerzeichen durch einen Unterstrich (_) ersetzt wird und der erste Buchstabe jedes Wortes in Kleinbuchstaben geschrieben wird.

Beispiel: fieldName zu field_name sollte eine gültige Konvertierung sein, aber FieldName zu Field_Name ist ungültig.

  • was hast du probiert? Ich würde eine Regex verwenden, um mit einem Großbuchstaben zu beginnen.

    – Jeff

    18. Januar 2019 um 1:12 Uhr


  • Mögliches Duplikat von Javascript konvertiert PascalCase in underscore_case

    – Chris

    18. Januar 2019 um 1:13 Uhr

  • Java ist für Javascript wie Schmerz für Malerei oder Ham für Hamster. Sie sind völlig unterschiedlich. Es wird dringend empfohlen, dass angehende Programmierer versuchen, den Namen der Sprache zu lernen, in der sie versuchen, Code zu schreiben. Wenn Sie eine Frage posten, markieren Sie sie bitte entsprechend.

    – Bestimmte Leistung

    18. Januar 2019 um 1:13 Uhr

const camelToSnakeCase = str => str.replace(/[A-Z]/g, letter => `_${letter.toLowerCase()}`);

  • Es funktioniert nicht, wenn ich Upper Camel Case für Snake Case verwendet habe. ItemName=_item_name

    – Badrül

    24. Januar 2019 um 8:33 Uhr


  • @Badrul aber das ist mehr PascalCase

    – Lukas

    14. Mai 2019 um 13:26 Uhr

  • Artikelname => Artikelname: const camel_to_snake = str => str[0].toLowerCase() + str.slice(1, str.length).replace(/[A-Z]/g, letter => `_${letter.toLowerCase()}`);

    – e382df99a7950919789725ceeec126

    30. März 2020 um 15:05 Uhr


  • Diese Version funktioniert auch für Upper Camel Case str.replace(/[A-Z]/g, (letter, index) => { return index == 0 ? letter.toLowerCase() : '_'+ letter.toLowerCase();});

    – Hrishi

    2. Juni 2021 um 10:03 Uhr


  • Meine Variante funktioniert gut mit dem ersten Großbuchstaben: text.split(/(?=[A-Z])/).join('_').toLowerCase()

    – Evseev Wadim

    5. November 2021 um 14:55 Uhr

Du könntest so etwas machen:

function camelToUnderscore(key) {
   var result = key.replace( /([A-Z])/g, " $1" );
   return result.split(' ').join('_').toLowerCase();
}

console.log(camelToUnderscore('itemName'));

  • Leicht modifizierte Version des Codes: var result = (value .replace(/[^A-Za-z0-9_]/g, ‘‘) .ersetzen(/([A-Z]+)/g, ” $1″) .replace(/\s+/g, ‘ ‘) .trim() .toLowerCase() .replace(/\s/g, ‘‘)); if (/^\d/.test(result)) { result = “x” + result; }

    – abasar

    13. September 2020 um 8:20 Uhr


  • @abasar was ist der vorteil deiner leicht modifizierten version?

    – Lauf_das_Rennen

    7. September um 7:32

Benutzeravatar von Amats
Amats

Versuche dies:

function toSnakeCase(inputString) {
    return inputString.split('').map((character) => {
        if (character == character.toUpperCase()) {
            return '_' + character.toLowerCase();
        } else {
            return character;
        }
    })
    .join('');
}
// x = item_name

  • Sie müssen dem Array erneut beitreten

    Benutzer578895

    18. Januar 2019 um 1:17 Uhr


  • @MarkKahn Das vergessen – Danke!

    – Amats

    18. Januar 2019 um 2:10 Uhr

  • Vielen Dank! Das ist super hilfreich. Für mich habe ich auch eine Überprüfung hinzugefügt, um sicherzustellen, dass die neue Zeichenfolge nicht mit einem Unterstrich beginnt, indem ich Ihre ersetze '_' mit (index != 0 ? '_': '') und Hinzufügen von Index als Parameter zu der Kartenfunktion ...map((character, index) => {...

    – Moralkodex

    2. August 2020 um 22:42 Uhr

  • Ich habe auch die Antwort unter stackoverflow.com/a/55521416 verwendet, um dieser Funktion eine Prüfung auf alphabetische Zeichen hinzuzufügen, damit Zahlen und Symbole (die dasselbe Zeichen sind, nachdem sie in Großbuchstaben umgewandelt wurden) nicht dazu führen, dass diese Funktion einfach weiter verdoppelt mAnzahl von Unterstrichen, wenn ein snake_case-String übergeben wird. Dies hat jedoch auch den Fehler, dass die Eingabe nur auf den fest codierten Zeichensatz beschränkt wird

    – Moralkodex

    2. August 2020 um 23:07 Uhr


1430860cookie-checkWie konvertiert man in Javascript Camelcase in Snake Case? [closed]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy