Заглавная буква JavaScript
var font_name = $(".font").val();
У меня есть это в моем коде JavaScript. В моем HTML у меня есть форма ввода с классом .font
,
Я хочу использовать первую букву каждого слова в .font
так, например, если кто-то печатает Lucida sans
это превратится в Lucida Sans
, Я не смог найти метод jQuery, который делает это для вас, поэтому я думаю, что мне нужно использовать настоящий JavaScript, но я действительно не знаю, как.
var font_first = font_name.substr(0,1);
var font = font_first.toUpperCase() + font_name.substr(1, font_name.length - 1);
Я использовал это, чтобы использовать заглавные буквы первой буквы всего шрифта, но, как я уже сказал, мне нужно использовать заглавные буквы первой буквы каждого слова.
5 ответов
Можете ли вы не просто использовать CSS?
.font {
text-transform: capitalize;
}
В jQuery:
$(".font").css("text-transform","capitalize");
Вы можете разделить пробелы, сопоставить функцию "верхний регистр" с каждой частью и соединить их вместе.
var font_name = $(".font").val();
font_name = font_name.split(" ")
.map(function(a) {return a.charAt(0).toUpperCase()+a.substr(1);})
.join(" ");
В качестве альтернативы см. ucwords
PHPJS
В простом JavaScript:
function firstcap(str) {
var len = str.length;
var re = /^\s$/;
var special = true; // signalizes whether previous char is special or not
for (var i=0; i<len; i++) {
var code = str.charCodeAt(i);
if (code>=97 && code<=122 && special) {
str = str.substr(0, i) + String.fromCharCode(code-32) + str.substr(i+1);
special = false;
}
else if (re.test(str[i])) {
special = true;
}
}
return str;
}
alert(firstcap('lucida sans'));
var str = "hello world";
str = str.toLowerCase().replace(/\b./g, function(letter) {
return letter.toUpperCase();
});
alert(str);
отсюда стека
Вот функция JavaScript, которую я только что закончил писать. Так как я впервые проверил Stackru, чтобы увидеть, был ли этот JavaScript, но его нелегко найти, я опубликую его для вас, ребята, чтобы использовать. Надеюсь, это поможет вам, ребята, если это так, подстегните меня:)
var FormatMyTitle = function(UnformattedData) {
var OutgoingData = UnformattedData;
if (UnformattedData.indexOf("") != -1) {
var OptionNameParts = UnformattedData.split(' ');
for (var i=0; i<OptionNameParts.length; i++) {
var OptionNamePieces = OptionNameParts[i].split('');
if (OptionNamePieces.length >= 1) {
var FirstLetter = ''+OptionNamePieces[0]+'';
OptionNamePieces[0] = FirstLetter.toUpperCase();
}
OptionNameParts[i] = OptionNamePieces.join('');
}
OutgoingData = OptionNameParts.join(' ');
}
return OutgoingData;
};
И вы бы использовали его так, например, используя свою исходную переменную (font_name):
var FormattedTitle = FormatMyTitle(font_name);