Javascript 如何获取一个输入字段,根据一组规则过滤输入并应用到另一个字段?

Javascript 如何获取一个输入字段,根据一组规则过滤输入并应用到另一个字段?,javascript,jquery,regex,Javascript,Jquery,Regex,以下方面的正确方法是什么: 标题的输入字段 用户名的输入字段 用户名规则:1到20个字母数字字符,包括下划线(“\”),小写 当用户键入标题时,如: 你好,世界 比萨饼集团 疯狂的人#* 用户名字段在用户键入标题时动态更新,以格式化标题以满足用户名规则 我需要一些带正则表达式的按键吗?思想?谢谢您可以用纯JS替换正则表达式。您可以使用jQuery绑定到keyPress事件(或任何其他您希望的事件)。希望这有帮助 $("#inputfld").keypress(function() { v

以下方面的正确方法是什么:

标题的输入字段

用户名的输入字段

用户名规则:1到20个字母数字字符,包括下划线(“\”),小写

当用户键入标题时,如:

  • 你好,世界
  • 比萨饼集团
  • 疯狂的人#*
用户名字段在用户键入标题时动态更新,以格式化标题以满足用户名规则


我需要一些带正则表达式的按键吗?思想?谢谢

您可以用纯JS替换正则表达式。您可以使用jQuery绑定到keyPress事件(或任何其他您希望的事件)。希望这有帮助

$("#inputfld").keypress(function() {
  var fldval = $('#inputfld').val();
  $('#inputfld').val(fldval.replace(/[^a-zA-Z0-9_]+/g,''));
});

下面将删除不允许的字符,并使用下划线而不是空格

$(function() {
   $("#title").keyup(function() {
      $("#username").val( $(this).val().replace(/[^A-Za-z0-9_ ]/g,"")
                                       .replace(/ /g, "_") );
   });
});
请注意,如果使用
keypress
,则
.val()
不会包含刚刚按下的键中的字符,因此两个字段将稍微不同步。使用
keyup
键时,它们将保持同步,除非你按住键并让它重复(尽管我想你可以通过设置keyup和keypress来处理这个问题)