读书人

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

发布时间: 2013-09-06 10:17:17 作者: rapoo

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',

读书人网 >J2EE开发

热点推荐