日期:2014-05-16  浏览次数:20408 次

javascript校验
我要对JSP 页面文本框的输入值进行校验,这个文本框输入的值是一个“车牌号”,但这个车牌号在数据库长度为varchar(15), 文本框只能输入“暂未上牌”,“不详”,和正常的车牌号,反正最终的输入值在数据库长度不能大于15 就可以了,因为一个中文在数据库占 3个字节,请问我在页面上如何控制呢?
JavaScript

------解决方案--------------------
只要设置文本框最大长度即可了
<input type="text" name="t" id="t" maxlength="15" >
数据库中varchar长度是根据你的字符编码自动判断的,也就是你输入15个英文也可以,输入15个中文也可以,不是按照字节数。同时数据库会自动截掉超过定义长度的字符,也就是如果你提交了20个中文的内容到后端插入数据库,实际也只有前15个保存在表中。
------解决方案--------------------

var str = document.getElementById('input')
if(str!='暂未上牌' 
------解决方案--------------------
 str!='不详'){
    if(getLen(str)>15){
        alert('非法输入');
        return;
    }
}

function getLen(str){
    var len = str.length,znLen = 0;
    for(var i=0;i<len;i++){
        if(str.charCodeAt(i)>255){
            znLen += 2;
        }
    }
    return len+znLen;
}