我们有时需要限制文本框输入内容的类型,本节分享下正则表达式限制文本框只能输入数字、小数点、英文字母、汉字等代码。以下都是在网上查找到的(前三个已验证)。
第一: 限制只能是整数
<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正则表达式限制文本框只能输入数字,能输小数点.
这种情况下,就需要直接在input上进行限制,在前端的应用中主要是用正则表达式来解决这些问题的 第一种情况:只能输入某 {{value}} <el-input v-model=value clearable size=small class=row-value @...
文本框只能输入 数字,小数点,减号 字符的正则表达式
详细的正则表达式,文本框输入限制 [大全]详细的正则表达式
* static Pattern compile(String regex, int flag):编译模式,参数 regex 表示输入的正则表达式,flag 表示模式类型(Pattern.CASE_INSENSITIVE 表示不区分大小写)。 * Matcher match(CharSequence input):获取...
这样,引用就不只是帮助你输入正则表达式的重复部分的快 捷方式了,它还实施了一条规约,那就是一个字符串各个分离的部分包含的是完全相同的字符.例如:下面的正则表达式匹配的就是位于单引号或双引号之内的所有字 ...
用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))" 用正则...
@#¥%……&* 这种字符的正则表达式书写: /[@#\$%\^&\*]+/g 这个是包含以上任意一个特殊字符。取! 即可 alert(!/[@#\$%\^&\*]+/g.test(“test”)) 返回 false 就代表不包含非法字符 . PS:关于正则表达式...
一个不错的数字的正则表达式验证的电子参考书。内容预览: 验证数字:^[0-9]*$ 验证n位的数字:^\d{n}$ 验证至少n位数字:^\d{n,}$ 验证m-n位的数字:^\d{m,n}$ 验证零和非零开头的数字:^(0|[1-9][0-9]*)$ ...
可以在标签里就限制只能输入数字,英文。验证电话号码,生份证号码等
限制input只能输入金额 JS代码: function checkInput(_this) { if (_this.value != '' && _this.value.substr(0, 1) == '.') { _this.value = '0.00' } if (_this.value == '') { _this.value = '0.00' } _...
允许基于正则表达式模式的某些输入,防止用户输入任何无效的内容。 这个是来做什么的? 在某些时候,您可能希望限制用户在您的 Web 应用程序中输入某些值。 具体来说,符合一组非常严格的值的字段。 如果您认为...
主要介绍了JS通过正则限制 input 输入框只能输入整数、小数(金额或者现金) 两位小数的相关资料,需要的朋友可以参考下
常用HTML正则表达式 1.只能输入数字和英文的: 代码如下: <input onkeyup=”value=value.replace(/[/W]/g,”) ” onbeforepaste=”clipboardData.setData(‘text’,clipboardData.getData(‘text’).replace...
1.在input框中只能输入金额,其实就是只能输入最多有两位小数的数字 //第一种在input输入框限制 <input type=text maxlength=8 class=form-control id=amount style=margin-right: 2px; value= onChange=count()...
1、可以动态设置小数点的前几位和后几位,进行实时校验;...2、通过正则表达式判断,超过设置的范围就不能输入了; 3、只能输入数字和小数点; 4、已经封装好的插件,可以直接使用。有使用的示例和必要的注释。
之前写了关于vue通过watch对input做字数限定的方法,最近需要回顾,就顺便发到随笔上了 <input type=text v-model=items.text ref=count/> <div v-html=number></div> /div> new Vue({ el: '#app', ...
在这篇文章里,我已经编写了12个超有用的正则表达式,这可是WEB开发人员的最爱哦。 1.在input框中只能输入金额,其实就是只能输入最多有两位小数的数字 //第一种在input输入框限制 <input type="text" ...
先在标签上绑定上 @input 事件来监听标签的值变化,通过正则来改变输入的值。 <input class="keep_input" v-number-only style="width:35px" v-model="scope.row.fileOrder" @input="scope.row.fileOrder ...
限制只能输入中文的文本框.htm 使用正则表达式实现