我在网上搜索过找不到任何可以帮助我的东西。我想在变量中将每个单词的第一个字母大写。
到目前为止,我已经尝试过:
toUpperCase();
没有运气,因为它大写所有字母。
我在网上搜索过找不到任何可以帮助我的东西。我想在变量中将每个单词的第一个字母大写。
到目前为止,我已经尝试过:
toUpperCase();
没有运气,因为它大写所有字母。
使用.replace
[MDN]函数将单词开头的小写字母替换为大写字母。
var str = "hello world";
str = str.toLowerCase().replace(/\b[a-z]/g, function(letter) {
return letter.toUpperCase();
});
alert(str); //Displays "Hello World"
编辑:如果您处理的不仅仅是 az 的单词字符,那么以下(更复杂的)正则表达式可能更适合您的目的。
var str = "петр данилович björn über ñaque αλφα";
str = str.toLowerCase().replace(/^[\u00C0-\u1FFF\u2C00-\uD7FF\w]|\s[\u00C0-\u1FFF\u2C00-\uD7FF\w]/g, function(letter) {
return letter.toUpperCase();
});
alert(str); //Displays "Петр Данилович Björn Über Ñaque Αλφα"
更简单的方法:
$('#test').css('textTransform', 'capitalize');
我必须感谢@Dementic 带领我走上正确的道路。比你们提出的任何建议都简单得多。
http://phpjs.org/functions/ucwords:569有一个很好的例子
function ucwords (str) {
return (str + '').replace(/^([a-z])|\s+([a-z])/g, function ($1) {
return $1.toUpperCase();
});
}
(为简洁起见,从源代码中省略了函数注释。有关详细信息,请参阅链接的源代码)
编辑:请注意,此函数将每个单词的第一个字母(如您的问题所要求)大写,而不仅仅是字符串的第一个字母(如您的问题标题所要求)
只是想添加一个纯 javascript 解决方案(没有 JQuery)
function capitalize(str) {
strVal = '';
str = str.split(' ');
for (var chr = 0; chr < str.length; chr++) {
strVal += str[chr].substring(0, 1).toUpperCase() + str[chr].substring(1, str[chr].length) + ' '
}
return strVal
}
console.log(capitalize('hello world'));
我想您可以使用 substring() 和 toUpperCase() 来提取第一个字符,将其大写,然后用结果替换字符串的第一个字符。
myString = "cheeseburger";
firstChar = myString.substring( 0, 1 ); // == "c"
firstChar.toUpperCase();
tail = myString.substring( 1 ); // == "heeseburger"
myString = firstChar + tail; // myString == "Cheeseburger"
我认为这应该对你有用。另一件要考虑的事情是,如果正在显示此数据,您可以向其容器添加一个类,该类具有 CSS 属性“text-transform: capitalize”。