我想使用javascript函数来大写每个单词的第一个字母
例如:
THIS IS A TEST ---> This Is A Test
this is a TEST ---> This Is A Test
this is a test ---> This Is A Test
什么是简单的javascript函数
答案 0 :(得分:33)
这是我用来完成工作的一个小班轮
var str = 'this is an example';
str.replace(/\b./g, function(m){ return m.toUpperCase(); });
但John Resig做了一个非常棒的脚本来处理很多案例 http://ejohn.org/blog/title-capitalization-in-javascript/
更新
ES6 +回答:
str.split(' ').map(s => s.charAt(0).toUpperCase() + s.slice(1)).join(' ');
可能还有比这更好的方法。它将适用于重音字符。
答案 1 :(得分:9)
function capitalizeEachWord(str)
{
var words = str.split(" ");
var arr = [];
for (i in words)
{
temp = words[i].toLowerCase();
temp = temp.charAt(0).toUpperCase() + temp.substring(1);
arr.push(temp);
}
return arr.join(" ");
}
答案 2 :(得分:5)
"tHiS iS a tESt".replace(/[^\s]+/g, function(str){
return str.substr(0,1).toUpperCase()+str.substr(1).toLowerCase();
});
其他变体:
"tHiS iS a tESt".replace(/(\S)(\S*)/g, function($0,$1,$2){
return $1.toUpperCase()+$2.toLowerCase();
});
答案 3 :(得分:4)
这是一个简单的解决方案,可以将句子分解为数组,然后循环遍历数组,创建一个带有大写单词的新数组。
function capitalize(str){
var strArr = str.split(" ");
var newArr = [];
for(var i = 0 ; i < strArr.length ; i++ ){
var FirstLetter = strArr[i].charAt(0).toUpperCase();
var restOfWord = strArr[i].slice(1);
newArr[i] = FirstLetter + restOfWord;
}
return newArr.join(' ');
}
答案 4 :(得分:1)
看看ucwords from php.js - 这似乎是你正在寻找的。基本上,它是:
function ucwords (str) {
return (str + '').replace(/^([a-z])|\s+([a-z])/g, function ($1) {
return $1.toUpperCase();
});
}
请注意,THIS IS A TEST
将返回THIS IS A TEST
,因此您必须像这样使用它:
var oldstring = "THIS IS A TEST";
var newstring = ucwords(oldstring.toLowerCase());
或稍微修改一下这个函数:
function ucwords (str) {
str = (str + '').toLowerCase();
return str.replace(/^([a-z])|\s+([a-z])/g, function ($1) {
return $1.toUpperCase();
});
}
var oldstring = "THIS IS A TEST";
var newstring = ucwords(oldstring); // This Is A Test
答案 5 :(得分:1)
这会将每个由空格或短划线分隔的单词大写
function capitalize(str){
str = str.toLowerCase();
return str.replace(/([^ -])([^ -]*)/gi,function(v,v1,v2){ return v1.toUpperCase()+v2; });
}
示例:
等
答案 6 :(得分:1)
如果您不介意使用库,可以使用Sugar.js capitalize()
大写(全部=假)大写第一个字符 字符串和下划线所有其他字母。如果一切都是真的,那么所有的话 字符串将大写。
示例:
'hello kitty'.capitalize() -> 'Hello kitty'
'hello kitty'.capitalize(true) -> 'Hello Kitty'
答案 7 :(得分:1)
您也可以使用以下方法使用过滤器:
function Ucwords(str){
var words = str.split(' ');
var arr = [];
words.filter(function(val){
arr.push(val.charAt(0).toUpperCase()+ val.substr(1).toLowerCase());
})
console.log(arr.join(" ").trim());
return arr.join(" ").trim();
}
Ucwords("THIS IS A TEST") //This Is A Test
Ucwords("THIS ") //This
答案 8 :(得分:0)
{
String s = "this is for testing";
String sw[] = s.split("\\s");
String newS = "";
for(int i=0; i<=sw.length-1; i++)
{
String first = sw[i].substring(0,1);
String last = sw[i].substring(1);
newS+= first.toUpperCase()+last+" ";
}
System.out.println(newS);
}