- 使用type=“number”
网页有用,但手机仍可以输入非数字,而且长度maxlength会失效;
如果要可以输入小数点,可以设置step=“0.1” - v-model.nunber
不好用,如果一开始输入不是数字,则没有用。 - 使用正则
oninput="value=value.replace(/[^\d]/g,'')"
推荐
补充:只能输入数字而且开头不能为零
oninput="value=value.replace(/^[0]+[1-9]*/g,'')" **(不能限制数字输入**)
只能输入数字,且排除0001情形
oninput="value=value.replace(/^[0]+[0-9]{1,}|[^\d]/g,'')"
只能输入数字和一个小数点
oninput="value=value.replace(/[^\d^\.]+/g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.')"
且开头不能是小数点
oninput="value=value.replace(/[^\d^\.]+/g,'').replace(/^\./g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.')"
var reg = /(^\d+$)|(^\d+\.\d+$)/g; //或是/^\d+(\.\d+)?$/
reg.test(val)
//先把非数字的都替换掉
replace(/[^\d.]/g,"");
//必须保证第一个为数字而不是
replace(/^\./g,"");
//只有出现一个.而没有多个.
replace(/\.{2,}/g,".");
//.只出现一次,而不能出现两次以上
replace(".","$#$").replace(/\./g,"").replace("$#$",".");