javascript通过正则表达式限制输入框只能输入数字

今天就来说记录下关于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   

分享到:更多 ()