使用Javascript自动将输入字段中每个单词的首字母大写

Cod*_*son 1 html javascript

我有一个javascript代码,可以自动在页面的任何输入字段中键入的每个句子的首字母大写。

代码如下:

<script type='text/javascript'>//<![CDATA[
$(window).load(function(){
$(document).ready(function() {
    $('input').on('keydown', function(event) {
        if (this.selectionStart == 0 && event.keyCode >= 65 && event.keyCode <= 90 && !(event.shiftKey) && !(event.ctrlKey) && !(event.metaKey) && !(event.altKey)) {
           var $t = $(this);
           event.preventDefault();
           var char = String.fromCharCode(event.keyCode);
           $t.val(char + $t.val().slice(this.selectionEnd));
           this.setSelectionRange(1,1);
        }
    });
});
});//]]> 

</script>
Run Code Online (Sandbox Code Playgroud)

在转换上面的代码以自动在输入字段中键入的每个单词的首字母大写而不只是仅第一个单词时,我需要帮助。

gur*_*372 6

您可以在keyup事件中简单地应用此方法

function toTitleCase( str ) 
{
   return str.split(/\s+/).map( s => s.charAt( 0 ).toUpperCase() + s.substring(1).toLowerCase() ).join( " " );
}
Run Code Online (Sandbox Code Playgroud)

现在将其用作

$('input').on('keyup', function(event) {
    var $t = $(this);
    $t.val( toTitleCase( $t.val() ) );
});
Run Code Online (Sandbox Code Playgroud)

演示版

function toTitleCase( str ) 
{
   return str.split(/\s+/).map( s => s.charAt( 0 ).toUpperCase() + s.substring(1).toLowerCase() ).join( " " );
}
Run Code Online (Sandbox Code Playgroud)
$('input').on('keyup', function(event) {
    var $t = $(this);
    $t.val( toTitleCase( $t.val() ) );
});
Run Code Online (Sandbox Code Playgroud)