variables的大写首字母

我在网上search,找不到任何东西来帮助我。 我想在variables中创build每个单词大写的第一个字母。

到目前为止我已经尝试过:

toUpperCase(); 

没有运气,因为它大写所有的字母。

使用.replace [MDN]函数来replace大写字母开头的小写字母。

 var str = "hello world"; str = str.toLowerCase().replace(/\b[az]/g, function(letter) { return letter.toUpperCase(); }); alert(str); //Displays "Hello World" 

更简单的方法:

$('#test').css('textTransform', 'capitalize');

我必须给@Dementic一些功劳,让我走上正确的道路。 比你们提议的任何事都简单得多。

http://phpjs.org/functions/ucwords:569就是一个很好的例子;

 function ucwords (str) { return (str + '').replace(/^([az])|\s+([az])/g, function ($1) { return $1.toUpperCase(); }); } 

(为简洁起见,从源代码中省略函数注释,详情请见链接源代码)

编辑:请注意,这个函数大写每个单词的第一个字母(如您的问题要求),而不只是一个string的第一个字母(如您的问题标题问)

我想你可以使用substring()和toUpperCase()来取出第一个字符,大写,然后用结果replacestring的第一个字符。

 myString = "cheeseburger"; firstChar = myString.substring( 0, 1 ); // == "c" firstChar.toUpperCase(); tail = myString.substring( 1 ); // == "heeseburger" myString = firstChar + tail; // myString == "Cheeseburger" 

我认为这应该为你工作。 另一件要考虑的事情是,如果显示这些数据,你可以添加一个类到它的CSS属性为“text-transform:capitalize”的容器中。

只是想添加一个纯粹的JavaScript解决scheme(没有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 } 

要做到这一点,如果你打算使用,你甚至不需要Javascript

 $('#test').css('textTransform', 'capitalize'); 

为什么不这样做像CSS一样

 #test,h1,h2,h3 { text-transform: capitalize; } 

或者把它作为一个class级,把这个class级应用到你需要的任何地方

 .ucwords { text-transform: capitalize; } 

曾经听说过substr()

对于初学者:

 $("#test").text($("#test").text().substr(0,1).toUpperCase()+$("#test").text().substr(1,$("#test").text().length)); 

[更新:]

感谢@FelixKling提示:

 $("#test").text(function(i, text) { return text.substr(0,1).toUpperCase() + text.substr(1); }); 
 var ar = 'foo bar spam egg'.split(/\W/); for(var i=0; i<ar.length; i++) { ar[i] = ar[i].substr(0,1).toUpperCase() + ar[i].substr(1,ar[i].length-1) } ar.join(' '); // Foo Bar Spam Egg 

基于@ peter-olson的回答,我没有使用jQuery采取了更多面向对象的方法:

 String.prototype.ucwords = function() { return this.toLowerCase().replace(/\b[az]/g, function(letter) { return letter.toUpperCase(); }); } alert("hello world".ucwords()); //Displays "Hello World" 

例如: http : //jsfiddle.net/LzaYH/1/

完全基于@Dementric的答案,这个解决scheme已经准备好用简单的jQuery方法“ucwords”来调用…感谢所有在这里贡献的人!

 $.extend({ ucwords : function(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 } 

});

示例:这可以使用该方法调用

 var string = "this is a test"; string = $.ucwords(string); // Returns "This Is A Test" 

你可以使用text-transform: capitalize; 为这项工作 –

HTML –

 <input type="text" style="text-transform: capitalize;" /> 

JQuery –

 $(document).ready(function (){ var asdf = "WERTY UIOP"; $('input').val(asdf.toLowerCase()); }); 

尝试这个

注意:这只是改变string的可视化表示。 如果你提醒这个string,它总是显示string的原始值。

var mystring =“hello World”mystring = mystring.substring(0,1).toUpperCase()+ mystring.substring(1,mystring.length)

console.log(mystring)//给你Hello World

在大写第一个字母之前要降低的string。

(两者都使用Jquery语法)

 function CapitaliseFirstLetter(elementId) { var txt = $("#" + elementId).val().toLowerCase(); $("#" + elementId).val(txt.replace(/^(.)|\s(.)/g, function($1) { return $1.toUpperCase(); })); } 

另外还有一个大写string的函数:

 function CapitaliseAllText(elementId) { var txt = $("#" + elementId).val(); $("#" + elementId).val(txt.toUpperCase()); } 

用于文本框的单击事件的语法:

 onClick="CapitaliseFirstLetter('TextId'); return false" 

我已经使用这个代码 –

 function ucword(str){ str = str.toLowerCase().replace(/(^([a-zA-Z\p{M}]))|([ -][a-zA-Z\p{M}])/g, function(replace_latter) { return replace_latter.toUpperCase(); }); //Can use also /\b[az]/g return str; //First letter capital in each word } var uc = ucword("good morning. how are you?"); alert(uc); 

HTML:

 <input class="capitalize" name="Address" type="text" value="" /> 

Javascript与jQuery:

 $(".capitalize").bind("keyup change", function (e) { if ($(this).val().length == 1) $(this).val($(this).val().toUpperCase()); $(this).val($(this).val().toLowerCase().replace(/\s[\p{L}az]/g, function (letter) { return letter.toUpperCase(); })) });