<asp:TextBox ID="FSiteNameTextBox" ValidationGroup="edit" MaxLength="50" runat="server" 
Text='<%# Bind("FSiteName") %>' />
<asp:RegularExpressionValidator 
ValidationGroup="edit"
ID="RegularExpressionValidator1"  
ControlToValidate="FSiteNameTextBox" 
runat="server" CssClass="error" 
ErrorMessage="网站名长度不能超过50" 
ValidationExpression="\w{1,50}" 
Text="网站名长度不能超过50">
</asp:RegularExpressionValidator>

解决方案 »

  1.   

    这是我在ListView中用的正则表达式,好奇怪的是,为什么我输中文"迅雷"两个字在FSiteNameTextBox,也报
    "网站名长度不能超过50" 错,我之前没有学过正则表达式,我查到\w: 匹配字母或数字或下划线或汉子。能组成单词。
    好奇怪,就是老报错,如果输两个英文字符就可以,什么情况哈。
      

  2.   

    ValidationExpression="^\w{1,50}$" 
      

  3.   

     ValidationExpression="[0-9a-zA-Z_\u4e00-\u9fa5]{1,50}"
      

  4.   

    匹配中文字符的正则表达式: [\u4e00-\u9fa5]
    匹配双字节字符(包括汉字在内):[^\x00-\xff]
    应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
    String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}匹配空行的正则表达式:\n[\s| ]*\r匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/ 匹配首尾空格的正则表达式:(^\s*)|(\s*$)应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现,如下:
    String.prototype.trim = function()
    {
    return this.replace(/(^\s*)|(\s*$)/g, "");
    }
      

  5.   

    谢谢大家。
    8楼说的好详细,很多没有接触过,我得找个时间系统学 才知道,谢谢。
    7楼和9楼的做法,可以了,可以喝我说说这两者的区别么?怎么"\w"不行,不是word的意思么?
    "\S"是非space是吧?但是上面我的"迅雷"如果按照我原来,也没有空格,但是为什么就不行,所以就疑惑了"\w"和"\S"。
      

  6.   

    \w:匹配任何字类字符,包括下划线。与“[A-Za-z0-9_]”等效。 
    \S:匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。