/*
下面的函数当中其中[\\u4e00-\\u9fa5]我想让他只包括汉字,
可是现在它也包括单引号和一些别特殊字符,请问一下应当如何修改啊?
*/function isChinese(obj)//验证1-5个中文字符串
{
if(obj.value == "") return true;
// 正则表达式对象
var re = new RegExp("^([\\u4e00-\\u9fa5]){1,5}$", "");
// 验证是否刚好匹配
var yesorno = re.test(obj.value);
if(yesorno)
{
return true;
}
else
{
return false;
}
}

解决方案 »

  1.   

    /[^\u0000-\u4dff,\u3000-\u3002,\u300a,\u300b,\u300e-\u3011,\u2014,\u2018,\u2019,\u201c,\u201d,\u2026,\u203b,\u25ce,\uff01-\uff5e,\uffe5,\u9fa6-\uffff]+/
      

  2.   

    /^[^\u0000-\u4dff,\u3000-\u3002,\u300a,\u300b,\u300e-\u3011,\u2014,\u2018,\u2019,\u201c,\u201d,\u2026,\u203b,\u25ce,\uff01-\uff5e,\uffe5,\u9fa6-\uffff]+$/前面没加首尾限制的.
      

  3.   


    把逗号都去掉试试/^[^\u0000-\u4dff\u3000-\u3002\u300a\u300b\u300e-\u3011\u2014\u2018\u2019\u201c\u201d\u2026\u203b\u25ce\uff01-\uff5e\uffe5\u9fa6-\uffff]+$/
      

  4.   

    <HTML> 
    <HEAD> 
    <title>date2 </title> <script language="javascript" type="text/javascript"> var re=/^[^\u0000-\u4dff\u3000-\u3002\u300a\u300b\u300e-\u3011\u2014\u2018\u2019\u201c\u201d\u2026\u203b\u25ce\uff01-\uff5e\uffe5\u9fa6-\uffff]+$/ 
    function a(str){
    alert(re.test(str));
    }
    </script> 
    </HEAD> 
    <body> 
    <input type="text" onblur="a(this.value)">
    </body> 
    </HTML>我测试的都挺好的啊...
    测试过:
    ss false
    、撒 false
    撒播 true
    `撒 false
      

  5.   

    [\u4e00-\u9fa5]匹配的就是中文不包含任何的标点符号,即使是中文的标点也不包括
    不知道你怎么搞得,反正我这里不匹配还有你那个括号是多余的
      

  6.   


    /*
    楼上的事实证明一切,请看下面输出true为什么?
    function userName(obj)//必须为:汉字或者a-z、0-9、-_,且长度大于2小于16
    {
    var re = new RegExp("^(([\\u4e00-\\u9fa5])|([A-Za-z0-9_-])){2,15}", "");
    var yesorno = re.test(obj);
    if(yesorno)
    {
    return true;
    }
    else
    {
    return false;
    }
    }
    alert(userName("你好'"));
    */
      

  7.   

    //您好您好这样好像也不行啊?了是输出true
    function userName(obj)//必须为:汉字或者a-z、0-9、-_,且长度大于2小于16
    {
    var re = new RegExp("^(([^\u0000-\u4dff\u3000-\u3002\u300a\u300b\u300e-\u3011\u2014\u2018\u2019\u201c\u201d\u2026\u203b\u25ce\uff01-\uff5e\uffe5\u9fa6-\uffff])|([A-Za-z0-9_-])){2,15}", "");
    var yesorno = re.test(obj);
    if(yesorno)
    {
    return true;
    }
    else
    {
    return false;
    }
    }
    alert(userName("你好'"));
      

  8.   

    function userName(obj)//必须为:汉字或者a-z、0-9、-_,且长度大于2小于16
    {
        var re = new RegExp("^[^\u0000-\u4dff\u3000-\u3002\u300a\u300b\u300e-\u3011\u2014\u2018\u2019\u201c\u201d\u2026\u203b\u25ce\uff01-\uff5e\uffe5\u9fa6-\uffff]{2,15}$");
        var yesorno = re.test(obj);
        if(yesorno)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
    alert(userName("你好'"));
      

  9.   

    无语了
    就你这个函数 你用 "'ABC" 测一下 肯定是false
    你测试的什么啊
    // 这样的才对!!!
    function userName(obj)//必须为:汉字或者a-z、0-9、-_,且长度大于2小于16 |[A-Za-z0-9_\\-]
    {
        var re = new RegExp("^([\\u4e00-\\u9fa5]|[A-Za-z0-9_-]){2,15}$", "");  //仔细看看这个正则,告诉你少用括号了还用这么多
        return re.test(obj);
    }
      

  10.   

    你在13楼发的正则表达式最后面加上$就可以了,因为不加的话,测试 "你好'" 确实是可以匹配到的,匹配到的是 "你好" 而不是整个字符串,但是只要能匹配到就返回true,所以正则表达式因改写成:^(([\\u4e00-\\u9fa5])|([A-Za-z0-9_-])){2,15}$