zoukankan      html  css  js  c++  java
  • String类型的方法总结

    String :字符串对象的包装类型

    var stringObject = new String("wanglehui");

    方法总结:

    1、返回该对象表示的基本字符串值(也就是返回自身)

    valueOf():返回调用对象的原型值

    toLocaleString():将数组转换成本地字符串

    toString():将调用对象转换成字符串/ 可把一个逻辑值转换成字符串并返回

    2、返回字符串长度

    stringObject.length():返回字符串长度

    3、跟字符有关的方法

    charAt():接受一个参数(下标位置),返回该位置的单字符字符串,若没有返回空

    stringObject[x]:也可以直接通过下标像取数组值那样取(不过不建议这样做,虽然IE8+、高级浏览器都支持)

    charCodeAt():和charAt()类似,只是返回的是字符编码,若越界,返回NaN

    4、字符串操作的方法——不改变源字符串

    (1)拼接字符串 concat()、“+”

    concat:拼接一个或者多个字符串,返回拼接好的新字符串(实践中用的最多的是“+”,效果跟concat一样,而且方便很多)

    (2)创建新字符串(返回被操作字符串的子字符串)

    正常的语法:

    ————————————————————————————————————————————

    slice(m,n):返回剪切的字符串,从下标m开始,剪切到下标n(包括m不包括n)

    substring(m,n):返回剪切的字符串,从下标m开始,剪切到下标n(包括m不包括n)

    substr(m,n):从下标m开始剪切n个字符

    var str = "wanglehui";
                
    var slice = str.slice(2,4);           //ng
    var substring = str.substring(2,4);  //ng
    var substr = str.substr(2,4);       //ngle

    如果只写一个参数:

    ————————————————————————————————————————————

    var str = "wanglehui";
                
    var slice0 = str.slice(2);           //nglehui
    var substring0 = str.substring(2);  //nglehui
    var substr0 = str.substr(2);       //nglehui 

    解释:三个方法都是从下标m开始,默认截取到字符串结尾。并返回截取的字符串

     

    如果只写一个参数,而且这个参数还是负数:

    ————————————————————————————————————————————

    var str = "wanglehui";
    
    var slice2 = str.slice(-2);           //ui
    var substring2 = str.substring(-2);  //wanglehui
    var substr2 = str.substr(-2);       //ui 

    解释:slice()、substr()默认是倒着数,也就是 " str.length-2 " 相当于 slice(7)、substr(7)

         substring()会把负数参数转换为0,然后返回整个字符串

    如果写两个参数,第一个正数,第二个负数
    ————————————————————————————————————————————

    var str = "wanglehui";
    
    var slice3 = str.slice(2,-4);           //ngl
    var substring3 = str.substring(2,-4);  //wa
    var substr3 = str.substr(2,-4);       //""(空字符串)

    解释:slice()仍然是遇见负数倒着数,slice(2,-4) 等于 slice(2,5),截取字符串下标为234的三个字符,如果 “ str.length-4 < 2 ” ,返回空

       substring()也仍然是将负数转化为0,substring(2,-4)  等于 substring(2,0)等于substring(0,2),会默认将较小的数作为开始位置

       substr()会将第二个负数参数转化为0,substr(2,-4) 等于 substr(2,0) ,截取长度为0,也就是返回空字符串

    如果两个参数都是负数(建议你就别用这些方法了,这不是作死吗?哈哈....,不过我还是好奇做了下测试)

    ————————————————————————————————————————————

    var str = "wanglehui";
    
    var slice4 = str.slice(-2,-4);           //""(空字符串)  等于slice(7,5),返回空
    var substring4 = str.substring(-2,-4);  //""(空字符串)   等于substring(0,0),返回空
    var substr4 = str.substr(-2,-4);       //""(空字符串)    等于substr(7,0),返回空

    解释:具体解释看以下中间小结,符合总结规律


    中间小结:

      substring(m,n),遇见负数就转换为0,无论是第几个参数,然后做正常的操作。若 n < m ,会自动将较小的数作为开始位置,简称自动反转

      slice(m,n),遇见负数就倒着数,也无论是第几个参数,也就是 “ str.length -m ”、“ str.length -n ”,但是没有自动反转操作,若 n < m , 返回空

      substr(m,n),遇见负数,分情况而定,第一个参数为负,倒着数定位。第二个参数为负,自动转换为0,也就是截取0个字符,返回空。

    5、字符串位置方法

    indexOf( str[必填], location[可选] ) : 从下标为location的位置,从前往后搜索字符串“str”,并返回找到时候的下标。找不到返回-1

    lastIndexOf( str[必填], location[可选] ) :从下标为location的位置,从后往前搜索字符串“ str ”,并返回找到的下标。找不到返回-1

    6、删除字符串边缘的空格

    trim():创建一个字符串副本,并删除前置和后缀的空格,然后返回处理后的字符串

    trimLeft(): 创建一个字符串副本,并删除字符串前置空格,然后返回处理后的字符串

    trimRight():创建一个字符串副本,并删除字符串后缀的空格,然后返回处理后的字符串

    7、字符串的模式匹配方法

    match(): 对比正则的exec(),两者返回数组一样,但使用方式正好相反(有关“捕获组”具体详见《JavaScript高级升序设计》P-106)

      match():在字符串上调用这个方法,接受参数类型(正则表达式/RegExp对象),返回包含第一个匹配信息的数组,若无返回null

      exec():在RegExp上调用这个方法,接收参数(字符串),返回包含第一个匹配信息的数组,若无,返回null

    search(): 与match接受参数相同,调用方式相同。不同的是search()始终从开头开始查找,找到返回下标,找不到返回-1

    replace():替换子字符串的方法,接受两个参数,第一个参数(RegExp对象/字符串),第二个参数(字符串/函数)

    /*
     * match 当前匹配项
     * position 当前匹配项的下标位置
     * originalText 原始文本
     * 返回替换后的字符串副本,不改变原始值
     * */
    var test = originalText.replace( regExp, function( match, position, originalText ){
          // code 
    });

    split():基于指定分隔符将字符串分割成多个子字符串,并将结果放在一个数组中。分隔符可以是字符串,也可以是RegExp对象,第二个参数可以设定返回数组的大小,以确保返回的数组不会超过既定大小。

    var str = "wanglehui|daifen|daye|daniang";
              
    var arr0 = str.split("|");        //["wanglehui", "daifen", "daye", "daniang"]
    var arr1 = str.split("|",2);     //["wanglehui", "daifen"]
    var arr2 = str.split(/[^/|]+/);  //["", "|", "|", "|", ""]

    解释:arr2是以不是“|”的标识符为分隔符,所以开头和结尾都符合要求,也就是空了

    8、字符串比较

    localeCompare():比较两个字符串,返回下列值中的一个

      如果该字符串在字母表中应该在字符串参数的前面,则返回一个负数(大多是-1,具体不定)

      如果字符串等于字符串参数,返回0
      如果该字符串在字母表中应该在字符串参数的后面,则返回一个正数(大多是1,具体不定)

    var str = "w";
              
    var arr0 = str.localeCompare("z");     //-1
    var arr1 = str.localeCompare("d");     //1
    var arr2 = str.localeCompare("w");     //0

    9、字符串字符编码操作

    charCodeAt(n):返回字符串中下标为n的字符的字符编码

    fromCharCode():静态方法,将接受的一个或者多个字符编码转换成字符串

    var str = "hello";
    var str1 = str.charCodeAt(0); //104
    
    var str2 = String.fromCharCode(104, 101, 108, 108, 111);  //hello

    10、HTML方法

      早期JavaScript动态格式化HTML的方法,只做了解,不建议使用,因为语义不明!

    anchor(name): 输出结果  <a name = "name" >string</a>

    big(): 输出结果  <big>string</big>

    bold(): 输出结果  <b>string</b>

    fixed() :输出结果  <tt>string</tt>

    fontcolor(): 输出结果  <font color = “color” >string </font>

    fontsize(): 输出结果  <font size= “size” >string </font>

    italics(): 输出结果  <i>string</i>

    link(url): 输出结果  <a herf = "url">string</a>

    small(): 输出结果  <small>string</small>

    strike(): 输出结果  <strike>string</strike>

    sub(): 输出结果  <sub>string</sub>

    sup(): 输出结果  <sup>string</sup>

    参考书籍:《JavaScript高级程序设计》5.6.3String类型

  • 相关阅读:
    linux ioctl
    pkg-config用法和gcc cflags
    boost noncopyable类
    google protobuf使用2
    跨平台编译CMake使用
    Linux epoll
    docker安装
    python 脚本转成exe可执行程序
    shell相关知识
    tcpdump使用
  • 原文地址:https://www.cnblogs.com/zxjwlh/p/6346052.html
Copyright © 2011-2022 走看看