如何仅使用jQuery允许字符串中的某些特定字符

its*_*sme 0 regex string jquery escaping

我让用户输入一些标签.这些标签应仅包含字符:

  • [a-z]
  • [A-Z]
  • 数字 [0-9]
  • 和角色 -

如果存在任何其他char,则应从字符串中删除它.

这可能吗?最快的方法是什么?

Rob*_*b W 7

您可以keyup为相关input元素分配事件处理程序,并使用以下代码过滤值:

$("input").keyup(function(){
    var value = $(this).val().replace(/[^-a-zA-Z0-9]/g, "");
    $(this).val(value)
})
Run Code Online (Sandbox Code Playgroud)
  • $("input")选择所有input元素.调整此选择器以满足您的愿望.
  • keyup用户释放密钥时会触发该事件.
  • $(this).val() 返回当前输入元素的值.
  • [^-a-zA-Z0-9]匹配任何无效字符(/[^-a-z0-9]/i具有相同的效果)
  • /g全局标志,表示:匹配RegExp的每次出现.
  • .replace(/.../g, "") 用空字符串替换所有无效字符(=删除所有无效字符)
  • $(this).val(value) 将当前输入元素的值更改为有效的字符串.