2016-07-18 12 views
0

Ich versuche herauszufinden, wie ein Zeichen nach einem Kleinbuchstaben eingefügt wird, aber vor einem Großbuchstaben in einer Zeichenkette, wo auch immer es auftritt. Zum Beispiel, mit der Zeichenfolge "HiMyNameIsBob", wenn ich Leerzeichen einfügen würde ich wollen, dass es "Hi My Name Is Bob" zurückgibt. Ich möchte etwas Ähnliches wie replace() tun. Ich benutze JavaScript.Wie füge ich ein Zeichen zwischen zwei Zeichen ein, wo immer sie in einer Zeichenfolge vorkommen?

Wenn die Antwort die Verwendung regulärer Ausdrücke enthält, wäre eine Erklärung der verwendeten regulären Ausdrücke sinnvoll.

+1

http://stackoverflow.com/questions/4149276/javascript-camelcase-to-regular-form – yuriy636

Antwort

2
var string = 'HiMyNameIsBob'; 
string = string.replace(/([a-z])([A-Z])/g, '$1 $2') 

wird nach jedem Vorkommen eines Kleinbuchstaben gefolgt von einem Großbuchstaben ein Leerzeichen einfügen.

[a-z] any lower char from a to z 
[A-Z] any upper char from a to z 
    /g means global 
    '$1 $2' are wildcards 
+1

In Anbetracht [diese Antwort bereits vorhanden] (http://stackoverflow.com/a/4149612/5743988), sollte diese Frage als Duplikat geschlossen werden. – 4castle

0
var insertSpace = function(string) { 
    var chars = string.split(''); 
    var insert = ' '; 

    for (var i = 0; i < string.length; i++) { 
    var char = chars[i]; 
    var nextChar = chars[i + 1] || null; 
    if (char === char.toLowerCase() && nextChar === nextChar.toUpperCase()) { 
     chars.splice(i + 1, 0, insert); 
     i++; 
    } 
    } 

    return chars.join(''); 
} 
Verwandte Themen