input正则匹配只能输⼊数字和指定位数⼩数点
最近经常遇到input框的正则匹配验证,每次都是查,觉得挺⿇烦的,所以就留了博客,⽅便以后随时查阅。这也不是我的原创,是别⼈的
劳动成果,我拿过来⽤⽽已。
1、只能输⼊指定位数的数字:
⽐如只能输⼊四位正整数:
<input type="text" class="acreage" οninput="if(value.length>4)value=value.slice(0,4)" οnkeypress="return event.keyCode>=48&&event.keyCode<=57" ng-pattern= 2、只能输⼊数字和保留三位⼩数点:
<input οnkeypress="if((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46 || /\.\d\d{2}$/.test(value))urnValue=false" type="text" />
其中{}中的数字是⼩数点后⾯可以保留的⼏位⼩数,⽐如0就是保留⼀位⼩数,1就是保留两位⼩数。
3、JQ的validate验证:
只能输⼊1-10之间的数字:
<input type="text" class="form-control" required="required" max="10" min="1" id="" name="dz_discount1" οnkeypress="return event.keyCode>=48&&event.keyCo 前⾯的max和min,控制的是输⼊的规则。如果input的类型是‘type=text’,在中⽂状态下是可以输⼊中⽂的,
所以要加键盘正则匹配,禁⽤中⽂。当然啦,前提是引⽤jq的validate。
4、select选中验证:
也是⽤的JQvalidate:
<select required="required" name="dz_select" id="" class="form-control">
<option value="">请选择</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
默认选中第⼀个,当选择1或者2的时候,验证就通过。不需要写js代码,只需要加required⾏内验证就可以了。
5、只能输⼊整数,且⾸字母不能为0:
<input οnkeyup="if(this.value.length==1){this.value=place(/[^1-9]/g,'')}else{this.value=place(/\D/g,'')}" onafterpaste="if(this.value.length==1 6、终极版本只能输⼊两位⼩数:
html代码:
<input type="text" name="ipt1" id="ipt1" value="" />
js代码:
$("#ipt1").keyup(function () {
var reg = $(this).val().match(/\d+\.?\d{0,2}/);
var txt = '';
if (reg != null) {
txt = reg[0];
}
$(this).val(txt);
}).change(function () {
$(this).keypress();
var v = $(this).val();
if (/\.$/.test(v))
{
$(this).val(v.substr(0, v.length - 1));
}
});
到这⾥,顺便提⼀下踩到的坑。当我这么使⽤终极版的时候,出现了⼀个问题。流程是页⾯先引⼊JQ⽂件,然后写这串js代码,这样就可以
顺利执⾏了(必须是JQ⽂件在上,js代码紧跟着在下,中间不得有任何代码。)。但是当我这么做的时候,页⾯上其他js⽂件就和JQuery
⽂件冲突了,因为JQuery⽂件要在引⽤⽂件的最顶部,这样JQ才能⽣效。当我把JQ代码放到引⽤代码的最顶端,其他js代码可以正常执
⾏,但是这串js代码就⽆法执⾏了。
所以⼀番查和求助之后,师傅告诉了我这么⼀个⽅法:
var Jq = Conflict();
Jq(document).ready(function(){
Jq("#singlelv").keyup(function () {
var reg = Jq(this).val().match(/\d+\.?\d{0,2}/);
var txt = '';
if (reg != null) {
txt = reg[0];
}
Jq(this).val(txt);
}).change(function () {
Jq(this).keypress();
var v = Jq(this).val();
if (/\.$/.test(v))
{
Jq(this).val(v.substr(0, v.length - 1));
}
input框禁止输入});
});
完美解决了这个问题。
⽜⼈果然是⽜⼈,没的说。
7、不可以输⼊中⽂
<input type="text" class="dz_text dz_text_input" name="" id="dz_age" value="" placeholder="整数,最多4位,不可以输⼊中⽂" maxlength="4" οnkeyup="if(this.val