首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

ExtJS 校验关于包孕中文的“字节长”

2013-09-06 
ExtJS 校验关于包含中文的“字节长”ExtJS 校验关于包含中文的“字节长”这里主义是字节长度var text Ext.cr

ExtJS 校验关于包含中文的“字节长”
ExtJS 校验关于包含中文的“字节长”
这里主义是字节长度


var text = Ext.create('Ext.form.TextField',{
     fieldLabel:'名称',
     labelAlign:'right',
     width:400,
     id:'text',
     name:'text',
     allowBlank:'true',
     maxLength:10,
     minLength:1,
     regex:/[^\x00-\xFF]/,
     regex:'名称最长不能超过10个字节,其中可以包括汉字'



})

 其实maxLength:10和minLength:1已经能控制字符不超过10个字符 ,但是不能控制总字节不超过10个,因为一个汉字相当于两个字节 

匹配双字节字符(包括汉字在内):[^\x00-\xff] 
这个正则表达式regex:/[^\x00-\xFF]/放在这总觉得不对

请大神指正 
并给出正确的正则表达式!!! ExtJS JS 正则表达式
[解决办法]
function Checkstrlenght(chars) {
    var sum = 0;
    for ( var i = 0; i < chars.length; i++) {
        var c = chars.charCodeAt(i);
        if ((c >= 0x0001 && c <= 0x007e) 
[解决办法]
 (0xff60 <= c && c <= 0xff9f)) {
            sum++;
        } else {
            sum += 2;
        }
    }
    return sum;
}

Ext.apply(Ext.form.VTypes, {lengthRange:function (v) {
if(Checkstrlenght(v)>10){
return false;
}
return true
}, ipText:"总字节数不能超过10个(汉字算2个)"});

在TextField里面加上 vtype : 'lengthRange',

热点排行