javascript - 在 HTML(5) 文本输入中屏蔽字符的最简单方法

标签 javascript html masking

HTML5 是否有任何类型的文本字段屏蔽,或者我是否仍然需要捕获 onkeydown 等?

jbabey 是对的——“屏蔽”就像屏蔽某些非法字符,而不是隐藏输入的内容。

我发现的最好(最简单和最可靠)的方法是捕获 onkeyup,然后只对文本字段的值运行正则表达式替换,删除任何非法字符。

这有几个优点:

  1. 易于实现(一个功能,两行代码)。
  2. 它很可靠,涵盖了我想到的所有情况。
  3. 它不会阻止复制/粘贴、全选或箭头键等键命令。

但它的主要缺点是它会在删除字符之前简要显示输入的字符,这使得它看起来非常老套和不专业。

最佳答案

查找新的HTML5 Input Types .这些指示浏览器执行数据的客户端过滤,但在不同浏览器中的实现是不完整的。 pattern 属性将执行正则表达式样式的过滤,但同样,浏览器并不完全(或根本)不支持它。

但是,这些不会阻止输入本身,它只会阻止提交包含无效数据的表单。您仍然需要捕获 onkeydown 事件以在它显示在屏幕上之前阻止键输入。

关于javascript - 在 HTML(5) 文本输入中屏蔽字符的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10887645/

相关文章:

javascript - 尝试验证 YYYY/MM/dd

java - 指定要抓取的数据 - Jsoup + Android Studio

html - 在 td 元素内对齐类

ruby-on-rails - 将 DNS 指向 heroku rails 应用程序上的子目录?

javascript - 将元素添加到选择框,除非它们已经存在

javascript - 为什么我不能在 javascript 中向字符串对象添加属性?

javascript - jsPDF大表,标题在第二页重叠

javascript - hAxis 值固定谷歌折线图

iphone - CGContextAddEllipseInRect 到 CGImageRef 到 CGImageMaskCreate 到 CGContextClipToMask

java - 在java中将负int赋给long