zoukankan      html  css  js  c++  java
  • Javascript截取字符串方法集合

    1.Javascript截取字符串的两个方法

    1.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"。
    }

    2.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)将返回相同的。

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

    1. <script type="text/javascript">

    2. /*************************************************************

    3. Author : Yanfu Xie <xieyanfu@yahoo.com.cn>

    4. Url : http://www.yitu.org

    5. Description : 正确截取单字节和双字节混和字符串

    6. String str : 要截取的字符串

    7. Number : 截取长度

    8. *************************************************************/

    9. function substr(str, len)

    10. {

    11. if(!str || !len) { return ''; }

    12. //预期计数:中文2字节,英文1字节

    13. var a = 0;

    14. //循环计数

    15. var i = 0;

    16. //临时字串

    17. var temp = '';

    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) { return temp; }

    31. //将当前内容加到临时字符串

    32. temp += str.charAt(i);

    33. }

    34. //如果全部是单字节字符,就直接返回源字符串

    35. return str;

    36. }

    37. var str = "呵呵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>
    47. ===================================
    48. 分割线

    ===================================

    怎么用JavaScript实现

    编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
    以前写的一个Cs类,但现在突然用到JAvaScript,有点茫然了
    public static string ToCut(string inputString,int len)
    {
    int tempLen=0;
    string tempString= " ";
    inputString=LoseHtml(inputString);
    ASCIIEncoding ascii = new ASCIIEncoding();
    byte[] s = ascii.GetBytes(inputString);
    for(int i=0;i <s.Length;i++)
    {
    if((int)s[i]==63)
    {
    tempLen+=2;
    }
    else
    {
    tempLen+=1;
    }
    try
    {
    tempString+=inputString.Substring(i,1);
    }
    catch
    {
    break;
    }
    if(tempLen> len)
    break;
    }
    //如果截过则加上半个省略号
    byte[] mybyte=System.Text.Encoding.Default.GetBytes(inputString);
    if(mybyte.Length> len)
    tempString=tempString.Substring(0,tempString.Length-3==0?1:tempString.Length-3)+ "… ";
    return tempString;
    }

    1. ===================================
    2. 分割线

    ===================================

    一个JavaScript基础技巧,根据一串字串中规定的字符,获取该字符以左或以右的字符串,以本例中的电子邮箱为例,它可以获取邮箱的用户名,而将用户名以外的字符抛弃掉,本实例应该是比较实用的。

    <html>

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

    <title>JavaScript截取字符串</title>

    </head>

    <body>

    <input id="x" type="text"/>

    <input type="button" onclick="x()" value="输入邮件地址,获取用户名"/>

    <script>

    function x(){

    var x=document.getElementById("x").value.toString();

    var c=x.split("@");

    document.getElementById("x").value=c[0];

    }

    </script>

    </body>

    </html>

    关于js split的用法其它也不多说什么,下面直接举例给大家看看

    复制代码代码如下:

    <script language="javascript">
    str="2,2,3,5,6,6"; //这是一字符串
    var strs= new Array(); //定义一数组
    strs=str.split(","); //字符分割
    for (i=0;i<strs.length ;i++ )
    {
    document.write(strs[i]+"<br/>"); //分割后的字符输出
    }
    </script>

    输出结果就是

    复制代码代码如下:

    2
    2
    3
    5
    6
    6

    js split就是将一字符串以特定的字符分割成多个字符串,大家应当一看就懂了吧。

    原文地址:http://www.cnblogs.com/CarreyWu/archive/2011/08/01/2123841.html


    人生就像不能回头的旅途(网站) 广告位招商(网站) 人生就像不能回头的旅途(网店) 北京淘宝联盟(微博) 淘宝电器频道
    2012春季女装新款 欧美中袖白色连衣裙 5新款连衣裙 韩版爆款灯笼袖 新春款 雪纺连衣裙 5新款连衣裙 韩版爆款灯笼袖 新春款 雪纺连衣裙 2012夏装新款金属链褶皱木耳边七分袖网纱配腰带蓬蓬裙 连衣裙 欧美春装2012新款薄款蓝色珍珠扣女士牛仔裙纯色连衣裙中袖七分袖 2012夏装新品 淑女短袖 棉修身 中腰 知性 显瘦 连衣裙 2012新款春装女装蕾丝拼接 蝴蝶结 破烂风破洞露背T恤短袖[F7631] 养生堂朵而 玫瑰果油弹力洗发水 洗发露 滋养护肤 柔顺 正品


  • 相关阅读:
    用JS + WCF打造轻量级WebPart
    提高WCF服务并发能力的简单处理办法
    利用JQuery实现更简单的Ajax跨域请求
    WCF Testing Tool(转)
    [转贴]一个有趣的布局
    [转贴].net中上传视频并将各种视频文件转换成.flv格式
    IE5,IE6,IE7,IE8的css兼容性列表[转自MSDN]
    [转贴]Castle 开发系列文章
    ie6,ie7,ff 的css兼容hack写法
    ExtJs学习笔记(23)ScriptTagProxy+XTemplate+WCF跨域取数据
  • 原文地址:https://www.cnblogs.com/suizhikuo/p/2452716.html
Copyright © 2011-2022 走看看