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

时间:2011-11-10 04:20:40

标签: javascript jquery regex

以下是正确的方法:

标题的输入字段

用户名

的输入字段

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

当用户键入标题时:

  • Hello World
  • Pizza Group
  • Crazy Ones!@#!@#!#!# *

当用户键入标题格式化标题以符合用户名规则时,用户名字段会动态更新吗?

我需要一些正则表达式的keydown吗?想法?感谢

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

以下删除不允许的字符,并放置下划线而不是空格。

$(function() {
   $("#title").keyup(function() {
      $("#username").val( $(this).val().replace(/[^A-Za-z0-9_ ]/g,"")
                                       .replace(/ /g, "_") );
   });
});

请注意(可能与浏览器有关)如果您使用keypress .val()将不包含刚刚按下的键中的字符,那么这两个字段将略微不同步。使用keyup它们将保持同步,除非你按住键并让它重复(尽管我猜你可以捕获keyup keypress来处理它)。