ryr*_*yan 84 javascript jquery
我在网上搜索过什么都找不到帮我.我想在变量中使每个单词大写的第一个字母.
到目前为止我尝试过:
toUpperCase();
Run Code Online (Sandbox Code Playgroud)
并且没有运气,因为它标榜所有字母.
Pet*_*son 221
使用.replace[MDN]功能将以大写字母开头的小写字母替换为大写字母.
var str = "hello world";
str = str.toLowerCase().replace(/\b[a-z]/g, function(letter) {
return letter.toUpperCase();
});
alert(str); //Displays "Hello World"Run Code Online (Sandbox Code Playgroud)
编辑:如果您正在处理的语言字符不仅仅是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 ????"Run Code Online (Sandbox Code Playgroud)
vbu*_*ger 70
更简单的方法:
$('#test').css('textTransform', 'capitalize');
我必须给予@Dementic一些荣誉,因为它让我走上了正确的道路.比你提出的任何东西都简单得多.
Jon*_*and 24
http://phpjs.org/functions/ucwords:569就是一个很好的例子
function ucwords (str) {
return (str + '').replace(/^([a-z])|\s+([a-z])/g, function ($1) {
return $1.toUpperCase();
});
}
Run Code Online (Sandbox Code Playgroud)
(为简洁起见,省略了来源的功能评论.详情请见相关链接来源)
编辑:请注意,此函数会将每个单词的第一个字母(如您的问题所示)大写,而不仅仅是字符串的第一个字母(正如您的问题标题所示)
Dem*_*tic 14
只是想添加一个纯粹的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'));Run Code Online (Sandbox Code Playgroud)
Nic*_*hes 13
我想你可以使用substring()和toUpperCase()来拉出第一个字符,大写它,然后用结果替换字符串的第一个字符.
myString = "cheeseburger";
firstChar = myString.substring( 0, 1 ); // == "c"
firstChar.toUpperCase();
tail = myString.substring( 1 ); // == "heeseburger"
myString = firstChar + tail; // myString == "Cheeseburger"
Run Code Online (Sandbox Code Playgroud)
我认为这应该适合你.另一件需要考虑的事情是,如果显示此数据,您可以向其容器中添加一个具有CSS属性"text-transform:capitalize"的类.
Sol*_*Sol 11
它很简单,如下所示:
string = 'test';
newString = string[0].toUpperCase() + string.slice(1);
alert(newString);
Run Code Online (Sandbox Code Playgroud)
要做到这一点,如果你要使用它,你甚至不需要Javascript
$('#test').css('textTransform', 'capitalize');
Run Code Online (Sandbox Code Playgroud)
为什么不像css一样这样做
#test,h1,h2,h3 { text-transform: capitalize; }
Run Code Online (Sandbox Code Playgroud)
或者将其作为一个班级,并将该班级应用到您需要的任何地方
.ucwords { text-transform: capitalize; }
Run Code Online (Sandbox Code Playgroud)
小智 6
听说过substr()吗?
对于首发:
$("#test").text($("#test").text().substr(0,1).toUpperCase()+$("#test").text().substr(1,$("#test").text().length));
Run Code Online (Sandbox Code Playgroud)
[更新:]
感谢@FelixKling的提示:
$("#test").text(function(i, text) {
return text.substr(0,1).toUpperCase() + text.substr(1);
});
Run Code Online (Sandbox Code Playgroud)
在@ peter-olson的回答的基础上,我采用了一种更加面向对象的方法而不使用jQuery:
String.prototype.ucwords = function() {
return this.toLowerCase().replace(/\b[a-z]/g, function(letter) {
return letter.toUpperCase();
});
}
alert("hello world".ucwords()); //Displays "Hello World"
Run Code Online (Sandbox Code Playgroud)
示例:http://jsfiddle.net/LzaYH/1/
最简单的方法
let str="hiren raiyani"
str.toLowerCase().replace(/(?<= )[^\s]|^./g, a => a.toUpperCase());
Run Code Online (Sandbox Code Playgroud)
用户定义函数:
function capitalize(str){
return str.toLowerCase().replace(/(?<= )[^\s]|^./g, a => a.toUpperCase());
}
Run Code Online (Sandbox Code Playgroud)
输出:Hiren Raiyani
使用代码作为您的用户定义函数或直接
| 归档时间: |
|
| 查看次数: |
197472 次 |
| 最近记录: |