0

このコードが機能しています: http://jsfiddle.net/Q2tFx/

$.fn.capitalize = function () {
$.each(this, function () {
    var split = this.value.split(' ');
    for (var i = 0, len = split.length; i < len; i++) {
        split[i] = split[i].charAt(0).toUpperCase() + split[i].slice(1);
    }
    this.value = split.join(' ');
});
return this;
};

$('.title').on('keyup', function () {
    $(this).capitalize();
}).capitalize();

例外の単語のリストが欲しいです。

また、 3 文字以下の単語を大文字にしたくありません。

どうすればこれを行うことができますか?

ありがとう!

4

1 に答える 1

2

次のようなものを試してください: http://jsfiddle.net/Q2tFx/10/

$.fn.capitalize = function () {
  var wordsToIgnore = ["to","and","the","it", "or", "that", "this"],
      minLength = 3;
  function getWords(str) {
    return str.match(/\S+\s*/g);
  }
  this.each(function () {
    var words = getWords(this.value);
    $.each(words,function(i,word) {
      // only continue if word is not in ignore list
      if (wordsToIgnore.indexOf($.trim(word)) == -1 && $.trim(word).length > minLength) {
        words[i] = words[i].charAt(0).toUpperCase() + words[i].slice(1);
      }
    });
    this.value = words.join("");
  });
};

$('.title').on('blur', function () {
  $(this).capitalize();
}).capitalize();

現在、3文字未満の単語とリスト内の単語を無視するように設定されています

于 2013-01-10T16:14:16.483 に答える