Заглавная буква 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);
Другие вопросы по тегам