substring 方法
返回位于 String 对象中指定位置的子字符串。 strVariable.substring(start, end)
"String Literal".substring(start, end)参数
start指明子字符串的起始位置,该索引从 0 开始起算。end指明子字符串的结束位置,该索引从 0 开始起算。说明
substring 方法将返回一个包含从 start 到最后(不包含 end )的子字符串的字符串。substring 方法使用 start 和 end 两者中的较小值作为子字符串的起始点。例如, strvar.substring(0, 3) 和 strvar.substring(3, 0) 将返回相同的子字符串。 如果 start 或 end 为 NaN 或者负数,那么将其替换为0。 子字符串的长度等于 start 和 end 之差的绝对值。例如,在 strvar.substring(0, 3) 和 strvar.substring(3, 0) 返回的子字符串的的长度是 3。 示例
下面的示例演示了 substring 方法的用法。function SubstringDemo(){
   var ss;                         // 声明变量。
   var s = "The rain in Spain falls mainly in the plain..";
   ss = s.substring(12, 17);   // 取子字符串。
   return(ss);                     // 返回子字符串。
}
===============
substr 方法
返回一个从指定位置开始的指定长度的子字符串。stringvar.substr(start [, length ])参数
stringvar必选项。要提取子字符串的字符串文字或 String 对象。start必选项。所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。length可选项。在返回的子字符串中应包括的字符个数。说明
如果 length 为 0 或负数,将返回一个空字符串。如果没有指定该参数,则子字符串将延续到 stringvar 的最后。示例
下面的示例演示了substr 方法的用法。function SubstrDemo(){
   var s, ss;                // 声明变量。
   var s = "The rain in Spain falls mainly in the plain.";
   ss = s.substr(12, 5);  // 获取子字符串。
   return(ss);               // 返回 "Spain"。
}

解决方案 »

  1.   

    <script>
    function SubstringDemo(){
       var ss;    
       var s = "十分山豆根发射点十分山豆根发射点十分山豆根发射点十分山豆根发射点十分 ";
       ss = s.substring(0, 17);
       alert(ss); 
    }
    </script>
    <a href=# onclick="SubstringDemo()">测试</a>
      

  2.   

    substr(0,n),n是长度无论是中文还是西文。
      

  3.   

    用VBSCRIPT写一函数来实现
    在JAVASCRIPT中调用该函数
    在VBSCRIPT中有如下两函数:LEN()与LENB()若通过这两函数算出的值一致
    则为英文字串否则为中文字串
    写得稍为复杂一些就可完成“我想不论字符串是什么内容,截取的长度都一样,”的功能
    我已在多个系统中使用了如上方法
      

  4.   

    比较复杂,以下代码基本可以!但还必须增加判断的条件![未完工:(]<script>
    function SubstringDemo(){
      var num;
      var i=0;
      var k=0;
      var l=0;
      var flag="0"
      var s = txtText.value;
      
      for(var i=0;i<s.length;i++)
      {
        num=s.charCodeAt(i)
       
           if((num>19967)&&(num<40870))
        {k=k+1;}
        else
        {
        if(((num>64)&&(num<91))||((num>96)&&(num<123)))
        {l=l+1;}
        else
        {l=l+1;
        alert("你输入的不是中文或英文字符,请重新输入!!")
        }
            }
            
            
            var qq=k+Math.round(l/2);
            if(qq>=10)
           {
           if((l-Math.round(l/2)*2)!=0)
             {
             //l+=1;
             var flag="1";
            
             }
            if((num>19967)&&(num<40870))
            {
             if(l==0)
             alert("所取字符:  "+s.substring(0,k+l)+"\n\n所取长度:  "+s.substring(0,k+l).length);
             else
             {
             if(flag=="1")
             alert("所取字符:  "+s.substring(0,k+l-1)+"\n\n所取长度:  "+s.substring(0,k+l-1).length); 
             else
             alert("所取字符:  "+s.substring(0,k+l-1)+"\n\n所取长度:  "+s.substring(0,k+l-1).length); 
            
             }
            }
            else
            
            alert("所取字符:  "+s.substring(0,k+l)+"\n\n所取长度:  "+s.substring(0,k+l).length); 
            
        break;
        }
      }
      
      
    }
    </script>
    <input type="text" name=txtText><br>
    <input type="button" value="测试" onclick="SubstringDemo()">
      

  5.   

    我糊涂了,是不是说对于中文来说,n是表示中文字的个数,而对于英文来说,n表示的是字符的个数,再一个,上述结果是不是substring和substr产生的影响是一样的,请各位大侠指点