【发布时间】:2017-06-05 06:59:48
【问题描述】:
我正在编写脚本,我希望第一个字母和空格后的字母大写。如果一个单词跟在连字符 (-) 后面,那么它不应该大写,除非连字符 (-) 后面跟一个空格。如果用户想要将任何单词的首字母小写,它应该是动态工作的。
这是我使用以下脚本实现的。
这里的挑战是,用户应该可以在输入时将大写字母更改为小写
我无法实现该功能。
例子:
如果用户键入“hello world”,输出将是“Hello World”,如果用户想通过删除字母“W”并重新键入“World”中的字母“W”来小写字母“w”,预期结果应该是“Hello world”。
$.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;
};
$('textarea').on('keyup', function() {
$(this).capitalize();
}).capitalize();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<textarea></textarea>
【问题讨论】:
-
也许保留一个类型化值的数组,如果一个值从大写变为小写,标记它
标签: javascript jquery html frontend