用 split 拆分为数组,然后循环判断
如果不需要判断重复,可以用正则一次搞定

解决方案 »

  1.   

    给你个正则的例子.<html>
        <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
            <title>用正则判断标签</title>
        </head>
        <script type="text/javascript">
    /*
    // Regex Example in JavaScript
    // Rainsome Studio
    // [email protected]
    // 2009-02-04 in Shanghai
    */
    <!--//
    //用正则判断标签。
    function chk(obj)
    {
    var text = obj.value;
    var msg = "输入";
    var regex1 = /^\w{1,7}(?:[ ]+\w{1,7}){0,4}$/ig;
    if(regex1.test(text))
    {
    regex1 = /(?:[ ]+|^)(\w{1,7})(?:[ ]+\w{1,7})* \1(?:[ ]+|$)/;
    if(!regex1.test(text))
    {
    msg += "符合要求。";
    }
    else
    {
    msg += "不符合要求:输入重复的标签。";
    }
    }
    else
    {
    msg += "不符合要求:标签名或者数量不符合要求。";
    }
    alert(msg);
    }
    //-->
        </script>
        <body>
    <div><b>标签名只能是字母数字和下划线.</b></div>
            <input name="tagStr1" type="text" class="tag_input" id="tagStr1" size="50" maxlength="50"  onblur = "chk(this)"/> 
        </body>
    </html>
      

  2.   


     function checkForm(obj){ 
      var tagStr1 = obj.value; 
         var arrayObj = new Array();
          arrayObj=tagStr1.split(" ");
          if(arrayObj.length>5){
          alert("大于5");
          }else{
          for (i=0;i<=arrayObj.length;i++){
          if(tagSize(arrayObj[i])){
          alert(arrayObj[i].length);
          alert("字数大于7");
          }else{
          alert("字数小于7");
          if(tagDouble(arrayObj,arrayObj[i])){
          alert("有重复的");
          }else{
          alert("都符合");
          }
          }
          }
          }
     }
     
     //判断大于7个字
     function tagSize(str){
      if(str.length>7){
      return true;
      }else{
      return false;
      }
     }
     //判断是否重复
     function tagDouble(arrayObj,str){
      for (i=0;i<=arrayObj.length;i++){
      if(str==arrayObj[i]){
      alert("有重复的");
      return true;
      }else{
      return false;
      }
      }
     }本人菜鸟 写的很烂  有错误  大侠帮忙看看哪里要改
      

  3.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <title>
            论坛帖子<a>http://topic.csdn.net/u/20090204/15/66f439d1-c692-4858-9dcb-5e30d609aed6.html</a>
        </title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script>
            /* 去除String字符串两边的空格 */
            String.prototype.trim = function() {
                return this.replace(/^\s+|\s+$/g,"");
            }        function chk(obj) {
                var sText = obj.value.trim();
                var array = sText.split(" ");
                
                if(array.length > 5) {
                    alert("标签数不能多于5个");
                    return;
                }
                
                for(var i = 0; i < array.length; i++) {
              
                    if(array[i].length > 7) {
                        alert("标签: " + array[i] + " 长度不能大于7字符");
                        return;
                    }
                    
                    for(var j = i + 1; j < array.length; j++) {
                        if(array[i] == array[j]) {
                            alert("不能有重复的标签");
                           return;
                        }
                    }
               }
            }
        </script>
      </head>
      <body>
        <input name="tagStr1" type="text" class="tag_input" id="tagStr1" size="50" maxlength="50" onblur = "chk(this)" /> 
      </body>
    </html>
      

  4.   

             function checkForm(obj){ 
                 var tagStr1 = obj.value; 
                var arrayObj = new Array();
                     arrayObj=tagStr1.split(" ");
                     if(arrayObj.length>5){
                         alert("大于5");
                     }else{
                         for (var i=0;i<arrayObj.length;i++){
                             if(tagSize(arrayObj[i])){
                                 alert(arrayObj[i].length);
                                 alert("字数大于7");
                             }else{
                                 alert("字数小于7");
                                 if(tagDouble(arrayObj,arrayObj[i],i)){
                                     alert("有重复的");
                                 }else{
                                     alert("都符合");
                                 }
                             }
                         }
                     }
             }
             
             //判断大于7个字
             function tagSize(str){
                 if(str.length>7){
                     return true;
                 }else{
                     return false;
                 }
             }
             //判断是否重复
             function tagDouble(arrayObj,str,j){
                 for (var i=0;i<arrayObj.length;i++){
                     if(i!=j && str==arrayObj[i]){
                         return true;
                     }
                 }
     return false;
             }