我决定提出一个新问题,因为我试图用 4 个或更多字母大写单词的第一个字母,除了几个关键词,我有这个工作代码:http: //jsfiddle.net/Q2tFx /11/
$.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).toLowerCase()) == -1 && $.trim(word).length > minLength) {
words[i] = words[i].charAt(0).toUpperCase() + words[i].slice(1);
}
});
this.value = words.join("");
});
};
$('.title').on('keyup', function () {
$(this).capitalize();
}).capitalize();
但是我在"keyup"上运行该功能时遇到问题。如果光标不在输入的末尾,我将无法在输入中间编辑某些内容。而且我也不能“全选”。
我知道有一些解决方案可以获得插入符号位置并处理这样的事情,但我真的不知道如何将它们集成到我的代码中。
关于我该怎么做的任何想法?