求一个正则表达式 ,校验长度的

长度为1-50字节的任意字符,包含中文,中文长度也要算进去,不是算字符的长度,是字节长度!!
比如数据库字段长度是10,输入了5个中文,前台校验的长度也是10

第1个回答  2019-08-04
[\u4e00-\u9fa5]表示匹配汉字
[A-Za-z]表示匹配英文字母
20个汉字
^[\u4e00-\u9fa5]{1,20}$
40个英文字母^[A-Za-z]{1,40}$
不知道你是不是需要分开校验
如果汉字英文混合也是允许的话,那建议还是代码中处理比较好。
第2个回答  2016-09-07
希望可以帮到你!

[\u4e00-\u9fa5]表示匹配汉字
[A-Za-z]表示匹配英文字母

20个汉字 ^[\u4e00-\u9fa5]{1,20}$
40个英文字母^[A-Za-z]{1,40}$追问

我要一条表达式,而且是任何字符

追答

[\s\S]*

new Regex(".*", RegexOptions.Singleline)

^[\S\s]{1,20}$

追问

不行 还是 20个中文还是校验出20的长度,不是40

追答

其他方法不知道了
你直接比较实际长度吧:

// GBK字符集实际长度计算
function getStrLeng(str){
var realLength = 0;
var len = str.length;
var charCode = -1;
for(var i = 0; i = 0 && charCode = 0 && charCode <= 128) {
realLength += 1;
}else{
// 如果是中文则长度加3
realLength += 3;
}
}
return realLength;
}

本回答被提问者采纳