Capitalize the first letter of each string
本问题已经有最佳答案,请猛点这里访问。
我一直在尝试将字符串中每个单词的第一个字母大写,但它表示
1 2 3 4 5 6 7 8 9 10 11 12 | function titleCase(str) { str = str.toLowerCase(); var word = str.split(""); // console.log(word[0][0]); for (var i = 0; i < word.length - 1; i++) { word[i][0] = word[i][0].toUpperCase(); } console.log(word); return word; } titleCase("I'm a little tea pot"); |
尝试这样做:(参见代码中的注释)
1 2 3 4 5 6 7 8 9 10 11 | function titleCase(str) { str=str.toLowerCase(); var word = str.split(""); for (var i=0; i < word.length; i++) { // you don't need -1 here as you had word[i] = word[i].charAt(0).toUpperCase() + word[i].slice(1); // see changes in this line } console.log(word); return word; } titleCase("I'm a little tea pot"); |
号
字符串具有接受函数的替换方法:
1 2 3 | var s = 'foo bar fum i am sparticus 23!!'; console.log(s.replace(/\b\w/g, function(s){return s.toUpperCase()})); |
。
您可以使用
1 2 3 4 5 6 7 8 9 10 11 | function titleCase(str) { str = str.toLowerCase(); var word = str.split(""); var x = word.map(function(item) { return item.charAt(0).toUpperCase() + item.substring(1, item.length); }).join(""); return x } console.log(titleCase("I'm a little tea pot")); |
。
仅使用CSS
1 2 3 | #test { text-transform: capitalize } |
。
1 | I'm a little tea pot |
使用拆分、阵列映射和减少:
1 2 3 4 5 | var str ="I'm a little tea pot"; var res = str.split("") .map(word => word.charAt(0).toUpperCase() + word.substr(1)) .reduce((m, o) => { m = m +"" + o; return m },"") console.log(res); |
。
也可以使用join而不是reduce:
1 2 3 4 5 | var str ="I'm a little tea pot"; var res = str.split("") .map(word => word.charAt(0).toUpperCase() + word.substr(1)) .join(""); console.log(res); |
您可以结合
1 2 3 4 5 6 7 8 9 | function titleCase(str) { return str.toLowerCase().split("").map(function(word) { var _word = word.split(""); _word[0] = _word[0].toUpperCase(); return _word.join(""); }).join(""); } console.log(titleCase("I'm a little tea pot")); |
您可以通过内置的数组函数将字符串直接转换为所需的内容。使用map函数,您将直接得到它,无需运行for循环。
1 2 3 4 5 | ("I'm a little tea pot") .split("") .map(function(d){ return d[0].toUpperCase()+d.substring(1,d.length) }).join("") |