0
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);

我用它来大写整个字体名称的第一个字母,但正如我所说,我需要将每个单词的第一个字母大写。

4

5 回答 5

4

你不能只使用CSS吗?

.font {
    text-transform: capitalize;
}

在 jQuery 中:

$(".font").css("text-transform","capitalize");
于 2012-07-06T21:46:44.310 回答
2

您可以分割空间,将“大写”功能映射到每个部分,然后将它们重新组合在一起。

var font_name = $(".font").val();
font_name = font_name.split(" ")
                     .map(function(a) {return a.charAt(0).toUpperCase()+a.substr(1);})
                     .join(" ");

或者,请参阅ucwordsPHPJS

于 2012-07-06T21:45:42.667 回答
1

在纯 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'));
于 2012-07-06T22:32:40.333 回答
0

这是我刚刚写完的一个 JavaScript 函数。由于我首先检查了 StackOverflow 以查看此 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);
于 2014-04-17T00:02:25.117 回答
0
var str = "hello world";
str = str.toLowerCase().replace(/\b./g, function(letter) {
    return letter.toUpperCase();
});
alert(str);

从这里堆栈

于 2012-07-06T21:45:24.083 回答