Javascript截取字符串的两个方法

1.substr方法
返回一个从指定位置开始的指定长度的子字符串。
stringvar.substr(start [, length ])
参数
stringvar必选项,要提取子字符串的字符串文字或String对象。
start必选项,所需的子字符串的起始位置。字符串中的第一个字符的索引为0
length可选项,在返回的子字符串中应包括的字符个数。
说明,如果length0或负数,将返回一个空字符串。如果没有指定该参数,则子字符串将延续到stringvar的最后。
示例
下面的示例演示了substr方法的用法。

functionSubstrDemo() {
vars, ss;//声明变量。

vars="The rain in Spain falls mainly in the plain.";
ss
=s.substr(12,5);//获取子字符串。

return(ss);//返回"Spain"
}

2.substring方法
返回位于String对象中指定位置的子字符串。
strVariable.substring(start, end)
"String Literal".substring(start, end)
参数
start指明子字符串的起始位置,该索引从 0 开始起算。
end指明子字符串的结束位置,该索引从 0 开始起算。
说明
substring方法将返回一个包含从start到最后(不包含end)的子字符串的字符串。
substring方法使用startend两者中的较小值作为子字符串的起始点。例如:strvar.substring(0, 3)和strvar.substring(3, 0)将返回相同的。

3.正确截取单字节和双字节混和字符串的方法

  1. <script type="text/javascript">
  2. /*************************************************************
  3. Author : Yanfu Xie <[email protected]>
  4. Url : http://www.yitu.org
  5. Description : 正确截取单字节和双字节混和字符串
  6. String str : 要截取的字符串
  7. Number : 截取长度
  8. *************************************************************/
  9. functionsubstr(str, len)
  10. {
  11. if(!str || !len){return'';}
  12. //预期计数:中文2字节,英文1字节
  13. vara =0;
  14. //循环计数
  15. vari =0;
  16. //临时字串
  17. vartemp ='';
  18. for(i=0;i<str.length;i++)
  19. {
  20. if(str.charCodeAt(i)>255)
  21. {
  22. //按照预期计数增加2
  23. a+=2;
  24. }
  25. else
  26. {
  27. a++;
  28. }
  29. //如果增加计数后长度大于限定长度,就直接返回临时字符串
  30. if(a > len){returntemp;}
  31. //将当前内容加到临时字符串
  32. temp += str.charAt(i);
  33. }
  34. //如果全部是单字节字符,就直接返回源字符串
  35. returnstr;
  36. }
  37. varstr ="呵呵he哈哈嘿嘿and";
  38. document.write("字符串:<font color='red'>"+str+"</font><br /><br />");
  39. document.write("javascript 默认截取10个字节的返回值:<br />");
  40. document.write("<font color='red'>"+str.substr(0,10)+"</font><br /><br />");
  41. document.write("用本文介绍的方法截取10个字节的返回值:<br />");
  42. document.write("<font color='red'>"+substr(str,10)+"</font><br /><br />");
  43. document.write("截取9个字节的返回值:<br />");
  44. document.write("<font color='red'>"+substr(str,9)+"</font><br /><br />");
  45. </script>

  46. 還有更簡單的方法(正則)
    <script>
    a="中文測試"
    b="51js.com"
    function dd(str,c){document.write(str.replace(/([\u0391-\uffe5])/ig,'$1a').substring(0,c).replace(/([\u0391-\uffe5])a/ig,'$1')+"<br/>")}
    dd(a,8);
    dd(b,8);
    </script>

你可能感兴趣的:(JavaScript)