Wie konvertiert man in Javascript Camelcase in Snake Case? [closed]
Lesezeit: 3 Minuten
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
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
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
14308600cookie-checkWie konvertiert man in Javascript Camelcase in Snake Case? [closed]yes
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