日期:2014-05-18  浏览次数:20860 次

有中文的帐号 正则表达式应该怎么写?
帐号要求如下:
6-20个字符(包括小写字母、数字、下划线、中文),一个汉字为两个字符。
可在正则表达式里中文是算1个字符,如下面
string regstring = @"^[a-zA-Z0-9_\u4e00-\u9fa5]{6,15}|[\u4e00-\u9fa5]{4,8}$";

我用"客服we"注册就通不过。1个中文+4个字母,2个中文加3个字母,3个中文加2个字母,4个中文加1个字母都通不过。

该怎么写啊?

------解决方案--------------------
一个正则表达式实现很困难吧,.net里面不论中英文都是用Unicode码保存,所以一个汉字的length就是1。

可以定义一个变量length,把帐号中的字符挨着个取出来,用正则表达式判是否是汉字,是就length +=2,否则length += 1
------解决方案--------------------
Default.GetBytes(s); //s: 验证的字符串..
------解决方案--------------------
还是1楼方法好,学习!