一些有用的HTML5 pattern
这篇讲的是手机端表单输入体验的一个具体痛点。作者从实际开发中遇到数字键盘显示多余的字母出发,对比了 HTML5 中 `type="tel"` 和 `type="number"` 的优劣:前者键盘统一但字母碍眼,后者在 Android 上是纯数字键盘,但在 iOS 上体验不佳,且旧版 Android 还有样式小尾巴。 为了解决这些不完美,作者深入探索了 `pattern` 属性。文章指出,虽然 `pattern` 的主要作用是通过正则表达式进行前端格式验证,但它的写法会影响移动端调起的键盘类型。例如,在 iOS 上,`pattern="[0-9]*"` 能成功调出九宫格数字键盘,而 `pattern="\d"` 则不行;到了 Android 高版本,系统则更认 `type` 属性本身。 文章还整理了一份实用的常用正则表达式清单,涵盖了信用卡、手机号、身份证、密码等多种常见表单场景。尽管 `pattern` 的整体浏览器支持情况不理想,但对于开头提到的优化数字输入键盘这一具体需求,它在 iOS 和 Android 主流设备上都能有效工作,为开发者提供了一个轻量级的解决方案。