在输入框中将第一个字母转换为大写

tsm*_*tsm 7 javascript jquery

JS Bin演示

正则表达式将每个小写字词转换为大写字母.我有一个全名输入字段.我希望用户看到他/她按下的每个单词的第一个字母在输入字段中转换为大写.

我不知道如何正确替换当前输入字段中的选定字符.

$('input').on('keypress', function(event) {
  var $this = $(this),
      val = $this.val(),
      regex = /\b[a-z]/g;

  val = val.toLowerCase().replace(regex, function(letter) {
    return letter.toUpperCase();
  });

  // I want this value to be in the input field.
  console.log(val);
});
Run Code Online (Sandbox Code Playgroud)

Rok*_*jan 15

val = val.substr(0, 1).toUpperCase() + val.substr(1);
Run Code Online (Sandbox Code Playgroud)

要么:

val = val.charAt(0).toUpperCase() + val.substr(1);
Run Code Online (Sandbox Code Playgroud)


dfs*_*fsq 8

input {
    text-transform: capitalize;
}
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/yuMZq/1/

使用文本转换会更好.

  • 这会将每个单词大写,而不仅仅是输入字段中的第一个字母 (7认同)
  • 这不会影响基础价值,它只会影响它的显示方式。 (2认同)