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(); })) });