$(function(){
// 验证正则,直接在input添加属性
// 正整数: zsyz="1";
$(document).on("keyup", 'input[zsyz=1]', function () {
this.value = this.value.replace(/\D/g, '') // 整数
})
// 输入整数且可以输入逗号: zsxs="1"
$("input[zsxs=1],textarea[zsxs=1]").keyup(function(){
this.value=this.value.replace(/[^\r\n0-9\,\,]/g,'');
})
// 只能输入中文: ch="1"
$("input[ch=1],textarea[ch=1]").keyup(function(){
this.value=this.value.replace(/[u4E00-u9FA5]/g,'');
})
// 仅限15个英文、数字、字符: yw="1"
$(document).on("keyup", "input[yw=1]", function () {
this.value = this.value.replace(/[^\w\.\/]/ig, '')
})
//仅限15个英文、数字、字符和@: yw="2"
$(document).on("keyup", "input[yw=2]", function () {
this.value = this.value.replace(/[^\w\.\@\/]/ig, '')
})
//仅能输入数字: num="1"
$(document).on("keyup", "input[num=1]", function () {
this.value = this.value.replace(/[^\d]/g, '')
})
//仅限英文: en="1"
$(document).on("keyup", "input[en=1]", function (event) {
this.value = this.value.replace(/[^a-zA-Z]+/g, '');
})
//仅限英文,数字: ennum="1"
$(document).on("keyup", "input[ennum=1]", function (event) {
//this.value = this.value.replace(/[^\w\.\/]/ig,'');
this.value = this.value.replace(/[^\d|a-zA-Z]/g,'');
})
// 保留小数点2位,不四舍五入: decimal="1"
function decimal(obj) {
obj.value = obj.value.replace(/[^\d.]/g, '');//清楚数字和.以外的字数
obj.value = obj.value.replace(/^\./g, "");
obj.value = obj.value.replace(/\.{2,}/g, '');//保留第一个,清楚多余的
//obj.value = obj.value.replace(".");
obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');
}
$(document).on("keyup", "input[decimal=1]", function (event) {
decimal(this)
})
// 将数字保留小数点后N位,不四舍五入
//num => 即将要被截取的数字,dot_behind => 保留小数点后的位数
function subNum(num,dot_behind)
{
num=parseFloat(num);
var dot_behind_wz=dot_behind+1;
var num1=num.toString(10);
var start_wz=num1.lastIndexOf('.');
if(start_wz==-1)
{
// 没有小数点
return parseFloat(num);
}
var num2=num1.substring(0,start_wz+dot_behind_wz);
var num3=parseFloat(num2);
num3=num3.toFixed(dot_behind);
num3=parseFloat(num3);
return num3;
}
//保留N位小数,无四舍五入, 添加属性 xsd_data="n"
function xsdN( dom , ws){
var num = dom.val();
ws = parseInt(ws);
var start_wz = num.indexOf(".");
if( start_wz!=-1){ //当存在小数点时,做切割
if(start_wz !=num.length-1){
var tmp = start_wz+ws+1;
var num1= num.substring(0,tmp);
var num2 = parseFloat(num1);
dom.val(num2);
}
}
else{ //当不存在小数点时,不允许输入数字,小数点外的字符
num = parseFloat(num);
if(num){
dom.val(num);
}else{ //num==NaN的时候
if(num==0){
dom.val("0");
}
else{
dom.val("");
}
}
}
}
//保留2 位
$(document).on("keyup","input[xsd_data=2]",function(){
xsdN( $(this),$(this).attr("xsd_data"));
})
//保留3 位
$(document).on("keyup","input[xsd_data=3]",function(){
xsdN( $(this),$(this).attr("xsd_data"));
})
//保留4 位
$(document).on("keyup","input[xsd_data=4]",function(){
xsdN( $(this),$(this).attr("xsd_data"));
})
//小数点2位保留位
function xsdyz(obj) {
obj.value = obj.value.replace(/[^\d.]/g, '');//清楚数字和.以外的字数
obj.value = obj.value.replace(/^\./g, "");
obj.value = obj.value.replace(/\.{2,}/g, '');//保留第一个,清楚多余的
//obj.value = obj.value.replace(".");
obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');
}
$(document).on("keyup", "input[xsdyz=1],textarea[xsdyz=1]", function (event) {
xsdyz(this);
})
//浮点数 2位小数(可以为负数)
function fds(obj) {
obj.value = obj.value.replace(/[^\d.-]/g, '');//清楚数字和.以外的字数
obj.value = obj.value.replace(/^\./g, "");
obj.value = obj.value.replace(/^-\./g, "");
obj.value = obj.value.replace(/\.{2,}/g, '');//保留第一个,清楚多余的
obj.value = obj.value.replace(/\-{2,}/g, '');//保留第一个,清楚多余的
obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');
}
$(document).on("keyup", "input[fds=1],textarea[fds=1]", function (event) {
fds(this);
})
$("input[xsdyz=1],textarea[xsdyz=1]").bind("keypress", function (event) {
$(this).css("ime-mode", "disabled");
var event = event || window.event;
var this_val = $(this).val();
//clearNum(this)
//控制第一个不能输入小数
if (this_val.length == 0 && event.which == 46) {
event.preventDefault();
return;
}
//只能输入一个小数点
if (this_val.indexOf('.') != -1 && event.which == 46) {
event.preventDefault();
return;
}
//禁止除了数字以外输入
if (event.which && (event.which < 48 || event.which > 57 ) && event.which != 8 && event.which != 46) {
event.preventDefault();
return;
}
})
})