2016-11-21 4 views
0

Ich bin neu in diesem Regex Teil. Meine Funktionalität besteht darin, jedes erste Zeichen in einem Wort als Großbuchstaben und den restlichen Teil in Kleinbuchstaben zu ersetzen. Ich kann eine Änderung leicht durchlaufen. Aber es könnte teurer sein. Um es zu vereinfachen, versuche ich Regex. Ich habe das ganze erste Zeichen in einem Wort in Großbuchstaben geändert, aber ich habe den Rest in Kleinbuchstaben geändert. Wie kann ich erreichen? Siehe den Code untenRegex zum Auswählen und Ersetzen als Titel Fall Wert

var txt= document.getElementById('txt'); 
 
var result = document.getElementById('result'); 
 
result.onclick = titleCases; 
 
function titleCases(){ 
 
     txt.innerText = txt.innerText.replace(/\b[a-z]/g,function(f){return f.toUpperCase();}) 
 
}
<div id="txt"> 
 
    replace The tExt 
 
</div> 
 
<button id="result"> 
 
    Result 
 
</button>

+1

Verwenden '.replace (/ \ b ([az]) (\ w +)/g, Funktion ($ 0, $ 1, $ 2) {return $ 1.toUpperCase() + $ 2.toLowerCase();}) ' –

Antwort

2

Es ist immer eine gute Idee, um ein Problem zu brechen, so viel wie möglich.

In diesem Fall möchten Sie alles Kleinbuchstaben außer den ersten Buchstaben, nicht wahr?

So konvertieren Sie das Ganze in Kleinbuchstaben, dann tun Sie Ihre "ersten Buchstaben zu Großbuchstaben" Sache.

txt.innerText.toLowerCase().replace(...); 
+0

Funktioniert wie ein Charme. Eine andere Frage. Wie kann ich jeden ersten Buchstaben eines Satzes in Großbuchstaben ersetzen? Ex ** F ** erster Buchstabe nach Sonderzeichen muss sein. ** C ** apital –

+0

Das ist kniffliger, aber wahrscheinlich so etwas wie '.replace (/ (^ | [\ W \ S] \ s +) (\ w)/g, Funktion (_, Präfix, Buchstabe) {return prefix + letter.toUpperCase();}); ' –

+0

Es funktioniert nicht, Alter. Siehe die fett gedruckten Buchstaben in meinem vorherigen Kommentar. Nur das sollte aktiviert werden –