`

正则表达式限制input 输入

 
阅读更多

我们有时需要限制文本框输入内容的类型,本节分享下正则表达式限制文本框只能输入数字、小数点、英文字母、汉字等代码。以下都是在网上查找到的(前三个已验证)。

 

第一: 限制只能是整数

<input type="text" name="number" id='number' onkeyup="if(! /^\d+$/.test(this.value)){alert('只能整数');this.value='';}"  />

如果不是整数就直接alert

 

 第二:输入大于0的正整数

<input onkeyup="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}" onafterpaste="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}">

 

第三: 限制是两位的小数

<input type="text" name="price" id='price'  onkeyup="if( ! /^\d*(?:\.\d{0,2})?$/.test(this.value)){alert('只能输入数字,小数点后只能保留两位');this.value='';}" />

原理:

通过 正则表达式判断,不满足 执行alert。

第一个正则表达式是 /^\d+$/ 表示可以是一个或者多个数字

第二个正则表达式是 /^\d*(?:\.\d{0,2})?$/

表示必须是数字开头,数字结尾。

这里重点是要数字结尾, 在计算机中通常小数 1. , 2. 这种写法, 就是可是小数点结尾的, 是正确的。这里强制让数字结尾。

test() 意思是:只要找到满足的部分就返回真。

/\d/.test('a') // false

/\d/.test('1a') // true

/\d/.test('a1') // true

所以要保证谁开头谁结尾。 开头用 $, 结尾用 ^

 

 

 

以下这些未经验证,仅供参考!!

1,文本框只能输入数字代码(小数点也不能输入)

<input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')">

 

2,只能输入数字,能输小数点.

<input onkeyup="if(isNaN(value))execCommand('undo')" onafterpaste="if(isNaN(value))execCommand('undo')">

<input name=txt1 onchange="if(/\D/.test(this.value)){alert('只能输入数字');this.value='';}">

 

3,数字和小数点方法二

<input type=text t_value="" o_value="" onkeypress="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value" onkeyup="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value" onblur="if(!this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?|\.\d*?)?$/))this.value=this.o_value;else{if(this.value.match(/^\.\d+$/))this.value=0+this.value;if(this.value.match(/^\.$/))this.value=0;this.o_value=this.value}">

 

封装成单独的函数:

 

代码如下:

 

function keyPress(ob) {

 if (!ob.value.match(/^[\+\-]?\d*?\.?\d*?$/)) ob.value = ob.t_value; else ob.t_value = ob.value; if (ob.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/)) ob.o_value = ob.value;

}

function keyUp(ob) {

 if (!ob.value.match(/^[\+\-]?\d*?\.?\d*?$/)) ob.value = ob.t_value; else ob.t_value = ob.value; if (ob.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/)) ob.o_value = ob.value;

        }

function onBlur(ob) {

if(!ob.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?|\.\d*?)?$/))ob.value=ob.o_value;else{if(ob.value.match(/^\.\d+$/))ob.value=0+ob.value;if(ob.value.match(/^\.$/))ob.value=0;ob.o_value=ob.value};

}

 

 

只需在调用,传入this对象即可!

 

4,只能输入字母和汉字

<input onkeyup="value=value.replace(/[\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[\d]/g,''))" maxlength=10 name="Numbers">

 

5,只能输入英文字母和数字,不能输入中文

<input onkeyup="value=value.replace(/[^\w\.\/]/ig,'')">

 

 

6,只能输入数字和英文

<input onKeyUp="value=value.replace(/[^\d|chun]/g,'')">

 

 

7,小数点后只能有最多两位(数字,中文都可输入),不能输入字母和运算符号:

<input onKeyPress="if((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46 || /\.\d\d$/.test(value))event.returnValue=false">

 

 

8,小数点后只能有最多两位(数字,字母,中文都可输入),可以输入运算符号:

<input onkeyup="this.value=this.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')">

 

9、正则匹配

^[1-9]\d*$    //匹配正整数

^-[1-9]\d*$   //匹配负整数

^-?[1-9]\d*$   //匹配整数

^[1-9]\d*|0$  //匹配非负整数(正整数 + 0)

^-[1-9]\d*|0$   //匹配非正整数(负整数 + 0)

^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$   //匹配正浮点数

^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$  //匹配负浮点数

^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$  //匹配浮点数

^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$   //匹配非负浮点数(正浮点数 + 0)

^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$  //匹配非正浮点数(负浮点数 + 0)

 

 10、小尾巴(本人自己用到的)

匹配首尾v为#

var reg = /^#/ && /#$/;

var text="#5332355#";

reg.test(text)//ture

匹配身份证号

正则表达式 :(^\d{15}$)|(^\d{17}([0-9]|X)$)

 

if ( !(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test('130722199411082521')) ) 

{

alert('输入的身份证号长度不对,或者号码不符合规定!\n15位号码应全为数字,18位号码末位可以为数字或X。');

 

};

分享到:
评论

相关推荐

    js正则表达式限制文本框只能输入数字,能输小数点.

    js正则表达式限制文本框只能输入数字,能输小数点.js正则表达式限制文本框只能输入数字,能输小数点.

    正则表达式解决input框固定输入值得格式(金额,特殊字符)

    这种情况下,就需要直接在input上进行限制,在前端的应用中主要是用正则表达式来解决这些问题的 第一种情况:只能输入某 {{value}} &lt;el-input v-model=value clearable size=small class=row-value @...

    文本框只能输入 数字,小数点,减号 字符的正则表达式

    文本框只能输入 数字,小数点,减号 字符的正则表达式

    正则表达式,文本框输入限制 [大全].txt

    详细的正则表达式,文本框输入限制 [大全]详细的正则表达式

    Java正则表达式的总结和一些小例子

    * static Pattern compile(String regex, int flag):编译模式,参数 regex 表示输入的正则表达式,flag 表示模式类型(Pattern.CASE_INSENSITIVE 表示不区分大小写)。 * Matcher match(CharSequence input):获取...

    正则表达式

    这样,引用就不只是帮助你输入正则表达式的重复部分的快 捷方式了,它还实施了一条规约,那就是一个字符串各个分离的部分包含的是完全相同的字符.例如:下面的正则表达式匹配的就是位于单引号或双引号之内的所有字 ...

    java 正则表达式

    用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))" 用正则...

    js正则判断非法字符限制输入

    @#¥%……&* 这种字符的正则表达式书写: /[@#\$%\^&\*]+/g 这个是包含以上任意一个特殊字符。取! 即可 alert&#40;!/[@#\$%\^&\*]+/g.test(“test”&#41;) 返回 false 就代表不包含非法字符 . PS:关于正则表达式...

    数字的正则表达式写法参考书

    一个不错的数字的正则表达式验证的电子参考书。内容预览: 验证数字:^[0-9]*$ 验证n位的数字:^\d{n}$ 验证至少n位数字:^\d{n,}$ 验证m-n位的数字:^\d{m,n}$ 验证零和非零开头的数字:^(0|[1-9][0-9]*)$ ...

    html 正则表达式

    可以在标签里就限制只能输入数字,英文。验证电话号码,生份证号码等

    js正则限制input只能输入金额

    限制input只能输入金额 JS代码: function checkInput(_this) { if (_this.value != '' && _this.value.substr(0, 1) == '.') { _this.value = '0.00' } if (_this.value == '') { _this.value = '0.00' } _...

    ng-pattern-restrict:对于 AngularJS,仅允许基于正则表达式模式的某些输入

    允许基于正则表达式模式的某些输入,防止用户输入任何无效的内容。 这个是来做什么的? 在某些时候,您可能希望限制用户在您的 Web 应用程序中输入某些值。 具体来说,符合一组非常严格的值的字段。 如果您认为...

    JS通过正则限制 input 输入框只能输入整数、小数(金额或者现金) 两位小数

    主要介绍了JS通过正则限制 input 输入框只能输入整数、小数(金额或者现金) 两位小数的相关资料,需要的朋友可以参考下

    使用正则限制input框只能输入数字/英文/中文等等

    常用HTML正则表达式 1.只能输入数字和英文的: 代码如下: &lt;input onkeyup=”value=value.replace(/[/W]/g,”) ” onbeforepaste=”clipboardData.setData(‘text’,clipboardData.getData(‘text’).replace...

    JS常用正则表达式及验证时间的正则表达式

    1.在input框中只能输入金额,其实就是只能输入最多有两位小数的数字 //第一种在input输入框限制 &lt;input type=text maxlength=8 class=form-control id=amount style=margin-right: 2px; value= onChange=count()...

    js限制input小数点前几位后几位

    1、可以动态设置小数点的前几位和后几位,进行实时校验;...2、通过正则表达式判断,超过设置的范围就不能输入了; 3、只能输入数字和小数点; 4、已经封装好的插件,可以直接使用。有使用的示例和必要的注释。

    vue通过watch对input做字数限定的方法

    之前写了关于vue通过watch对input做字数限定的方法,最近需要回顾,就顺便发到随笔上了 &lt;input type=text v-model=items.text ref=count/&gt; &lt;div v-html=number&gt;&lt;/div&gt; /div&gt; new Vue({ el: '#app', ...

    12个常用的js正则表达式

    在这篇文章里,我已经编写了12个超有用的正则表达式,这可是WEB开发人员的最爱哦。 1.在input框中只能输入金额,其实就是只能输入最多有两位小数的数字 //第一种在input输入框限制 &lt;input type="text" ...

    vue 限制input只能输入正数的操作

    先在标签上绑定上 @input 事件来监听标签的值变化,通过正则来改变输入的值。 &lt;input class="keep_input" v-number-only style="width:35px" v-model="scope.row.fileOrder" @input="scope.row.fileOrder ...

    限制只能输入中文的文本框.htm

    限制只能输入中文的文本框.htm 使用正则表达式实现

Global site tag (gtag.js) - Google Analytics