如何限制表单只能输入数字
解决思路:
捕获按键事件,把所输入的非数字字符过滤(替换为无)。
具体步骤:
代码示例:
<input onkeyup="this.value=this.value.replace(/[^\d]/g,’’)" onpaste="return false">
注意:触发事件必须用onkeyup,不能用onkeydown或onkeypress。
提示:
l this.value 提供当前元素的值。
l replace方法返回根据正则表达式进行文字替换后的字符串的复制。
l \d 匹配所有数字0-9,[^\d]匹配0-9之外的字符。
特别提示
代码运行后,在文本框中输入的非数字字符将被脚本“删”掉,比如输入flash8后只剩下一个8,效果如图1.4.26所示。
图1.4.26 只允许输入数字的文本框
特别说明
通过本例初步掌握正则表达式中对数字或非数字的查找匹配方法,还有对按键事件和粘贴事件的捕获。要了解更多关于正则表达式的更多信息,请参考第四部分第三章的问题10。
onkeydown 当用户按下键盘按键时触发。
onkeypress 当用户按下字面键时触发。
onkeyup 当用户释放键盘按键时触发。
onpaste 当用户粘贴数据以便从系统剪贴板向文档传送数据时在目标对象上触发。