今天就来说记录下关于javascript通过正则表达式限制输入框只能输入数字的问题
1.使用正则表达式限制输入框只能输入数字:
<input type="text" onkeyup="this.value=this.value.replace(/[^\d]/g,'') " onafterpaste="this.value=this.value.replace(/[^\d]/g,'') " value="1"/>
其中,onafterpaste防止用户从其它地方copy内容粘贴到输入框。
如何用onkeyup验证input框只能输入开头不为零的正整数呢?
网友经典回答:
首先纠正点东西
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
也就是说题主在使用空字符串去替换符合[0-9]的数字,
其次,一般^都是这样写的/^[0-9]/。
如果是按照题意去匹配开头不为零的正整数建议使用match方法
/^[1-9]{1}[0-9]*$/ //这样的正则就可以满足。
但如果是用replace方法的话去写的话,就要逆向去写了。
<!DOCTYPE html> <html> <body> <input type="number" id="myInput"> <script> const myInput = document.getElementById('myInput') myInput.onkeyup=function () { this.value=this.value.match(/^[1-9]{1}[0-9]*$/) } </script> </body>
2.输入框只能输入字母和下横线的正则表达式
<input onkeyup="this.value=this.value.replace(/[^_a-zA-Z]/g,'')" onpaste="this.value=this.value.replace(/[^_a-zA-Z]/g,'')">
3.输入框只能输入字母数字和下横线的正则表达式
<input onkeyup="this.value=this.value.replace(/[^\w]/g,'')" onpaste="this.value=this.value.replace(/[^\w]/g,'')">
或者
<input onkeyup="this.value=this.value.replace(/[\W]/g,'')" onpaste="this.value=this.value.replace(/[\W]/g,'')">
未经允许不得转载:哈勃私语 » javascript通过正则表达式限制输入框只能输入数字
本文共1090个字 创建时间:2018年5月23日15:58