下面是JK_10000(JK1) 帮我解决货币类型验证的方法,我感觉不错,不知道这种方法怎么能移植过来,用来解决其他验证!有知道的请帮我解答!谢谢!
<input type=text onblur="checkMoneyInput(this);"><script>
function checkMoneyInput(obj,min,max) //作用是将输入变成Number(10,2)格式,默认范围是非负。
{
obj.value=obj.value.replace(/ /g,""); //去空格
if (obj.value=="") return false;
if (obj.value.substr(0,1)==".") obj.value="0"+obj.value;
if (obj.value.substr(0,2)=="-.") obj.value=obj.value.replace("-.","-0.");
var r, re;
var s = obj.value ;
var theMin=-0.0000001;
var theMax=10000000000;
if (min!=null) theMin=min;
if (max!=null) theMax=max;
if (s.length==0) return false;
re = /-{0,1}\d{1,10}\.{0,1}\d{0,2}/i;
r = s.match(re); //取数
if (r==null)
{
obj.value="";
alert("!!!!请注意:\n您刚才输入的数值不正确,我们已进行了清除。");
obj.focus();
return false;

if ((r>=theMax)||(r<=theMin)) 
{
obj.value="";
alert("!!!!请注意:\n您刚才输入的数值超出允许范围,我们已进行了清除。");
obj.focus();
return false;

if ( r!=s) 
{
obj.value=r;
alert("!!!!请注意:\n您刚才输入的数值不正确,我们已进行了修改。");
obj.select();
obj.focus();
return false;
}
if((/\./i).test(r)) r=r+"0000";
else r=r+'.0000';
obj.value=r.match(re);
}</script>

解决方案 »

  1.   


    <input onblur="checkIntInput(this)">
    <input onblur="checkDecimalInput(this)">
    </select>
    <script>function checkDecimalInput(obj,min,max) //作用是将输入变成Number(10,6)格式,默认范围是非负。
    {
    obj.value=obj.value.replace(/ /g,""); //去空格
    if (obj.value=="") return false;
    if (obj.value.substr(0,1)==".") obj.value="0"+obj.value;
    if (obj.value.substr(0,2)=="-.") obj.value=obj.value.replace("-.","-0.");
    var r, re;
    var s = obj.value ;
    var theMin=-0.0000001;
    var theMax=10000000000;
    if (min!=null) theMin=min;
    if (max!=null) theMax=max;
    if (s.length==0) return false;
    re = /-{0,1}\d{1,10}\.{0,1}\d{0,6}/i;
    r = s.match(re); //取数
    if (r==null)
    {
    obj.value="";
    alert("!!!!请注意:\n您刚才输入的数值不正确,我们已进行了清除。");
    obj.focus();
    return false;

    if ((r>=theMax)||(r<=theMin)) 
    {
    obj.value="";
    alert("!!!!请注意:\n您刚才输入的数值超出允许范围,我们已进行了清除。");
    obj.focus();
    return false;

    if ( r!=s) 
    {
    obj.value=r;
    alert("!!!!请注意:\n您刚才输入的数值不正确,我们已进行了修改。");
    obj.select();
    obj.focus();
    return false;
    }
    obj.value=r;
    }function checkIntInput(obj,min,max) //作用是将输入变成整数,默认范围是非负。onblur event
    {
    obj.value=obj.value.replace(/ /g,""); //去空格
    if(obj.value=="") return false;
    var r;
    var s = obj.value ;
    var theMin=-1;
    var theMax=10000000000;
    if (min!=null) theMin=min;
    if (max!=null) theMax=max;
    if (s.length==0) return false;
    r = parseInt(s);; //取数
    if (r==null||isNaN(r))
    {
    obj.value="";
    alert("!!!!请注意:\n您刚才输入的整数不正确,我们已进行了清除。");
    obj.focus();
    return false;

    if ((r>=theMax)||(r<=theMin)) 
    {
    obj.value="";
    alert("!!!!请注意:\n您刚才输入的整数超出允许范围,我们已进行了清除。");
    obj.focus();
    return false;

    if ( r!=s) 
    {
    obj.value=r;
    alert("!!!!请注意:\n您刚才输入的整数不正确,我们已进行了修改。");
    obj.select();
    obj.focus();
    return false;
    }
    obj.value=r;
    }</script>