Di seguito, anche se ridondante, funziona perfettamente:Utilizzando sostituire e regex di capitalizzare prima lettera di ogni parola di una stringa in JavaScript
'leap of, faith'.replace(/([^ \t]+)/g,"$1");
e stampe "salto della fede", ma nel seguente :
'leap of, faith'.replace(/([^ \t]+)/g,RegExp.$1);
esso stampa "la fede fede fede"
di conseguenza quando voglio capitalizzare primo carattere di ogni parola come:
'leap of, faith'.replace(/([^ \t]+)/g,RegExp.$1.capitalize());
non funziona. Né fa,
'leap of, faith'.replace(/([^ \t]+)/g,"$1".capitalize);
perché probabilmente si capitalizza "$ 1" prima di sostituire il valore del gruppo.
che voglio fare questo in una sola riga con il metodo
Perché non usi il metodo '.toUpperCase()'? –
Converte tutti i caratteri in una stringa in maiuscolo e l'OP vuole convertire solo il primo carattere. – Pointy
Puoi usare toUpper + la tua risposta con 'str.replace (/ \ b [a-z]/g, function() {return arguments [0] .toUpperCase()})' –