JavaScript字符串方法

作者: 2857b61e8161 | 来源:发表于2017-11-14 16:08 被阅读10次

    1、两个用于访问字符串中特定字符的方法是:charAt()charCodeAt():接收一个参数,基于0的字符位置。其中charAt()方法以单个字符串的形式返回给定位置的那个字符。

    var string = "hello world";
    alert(string.charAt(1));//"e"
    

    如果你想得到的不是字符而是字符编码,需要使用charCodeAt()方法

    var string = "hello world";
    alert(string.charCodeAt(1));//输出"101"
    

    2、stringValue:访问个别字符串的方法。可以使用方括号加数字索引来访问字符串中的特定字符。

    var string = "hello world";
    alert(stringValue[1]);//"e"
    

    3、concat():用于将一个或多个字符串拼接起来,返回拼接得到的新字符串。

    var string = "hello";
    var result = string.concat("world");
    alert(result);//"hello world"
    alert(string);"hello"
    
    var string2 = "hello";
    var result2 = string2.concat("world","!");
    alert(result2);//"hello world !"
    alert(sting2);//"hello"
    

    虽然concat()是专门用来拼接字符串的方法,但实践中使用更多的还是加号操作符(+)。

    4、 slice()、substr()、substring()这三个方法都返回被操作字符串的一个子字符串,而且都接受一个或两个参数。第一个参数指定子字符串的开始位置,第二个参数(在指定的情况下)表示子字符串的结束位置。slice()和substring()的第二个参数指定的是子字符串最后一个字符后面的位置。而substr()的第二个参数指定的是返回的字符个数。如果没有给这些方法传递第二个参数,则将字符串的末尾作为结束位置。

    var str = "hello world";
    alert(str.slice(3));//"lo world"
    alert(str.substring(3));//"lo world"
    alert(str.substr(3));//"lo world"
    alert(str.slice(3,7));//"lo w";
    alert(str.substring(3,7));//"lo w"
    alert(str.substr(3,7));//"lo worl"
    

    再给这三个方法传的参数是负值的时候,它们的行为就不尽相同了。其中slice()方法会将传入的负值与字符串的长度相加。substr()方法将负的第一个参数加上字符串的长度,而将负的第二个参数转换为0,最后,substring()方法会把所有负值参数都转换为0.

    var str = "hello world";
    alert(str.slice(-3));//"rld";
    alert(str.substring(-3));//"hello world"
    alert(str.substr(-3));//"rld"
    alert(str.slice(3,-4));//"lo w"
    alert(str.substring(3,-4));//"hel"
    alert(str.substr(3,-4));//""空字符串
    

    在给slice()substr()传递一个负值参数时,它们的行为相同。当第二个参数是负值时,slice()方法会把第二个参数转换为7,相当于调用了slice(3,7)substring()方法会把第二个参数转换为0,使调用变成了substring(3,0),由于这个方法会将较小的数作为开始位置,将较大的数作为结束位置,因此相当于调用了substring(0,3)substr()会将第二个参数转换为0,这就意味着返回包含零个字符的字符串,也就是空字符串。

    5、字符串位置方法:有两个可以从字符串中查找子字符串的方法:indexOf()和lastIndexOf()。这两个方法都是从一个字符串中搜索给定的子字符串,然后返子字符串的位置(如果没有找到该子字符串,则返回-1)。这两个方法的区别在于:indexOf() 方法从字符串的开头向后搜索子字符串,而lastIndexOf()方法是从字符串的末尾向前搜索子字符串。

    var str = "hello world";
    alert(str.indexOf("o"));//4
    alert(str.lastIndexOf("o"));//7
    

    子字符串"o"第一次出现的位置是4,即"hello"中的"o";最后一次出现的位置是7,即"world"中的"o"。如果"o"在这个字符串中仅出现了一次,那么indexOf()lastIndexOf()会返回相同的位置值。

    这两个方法都可以接受可选的第二个参数,表示从字符串中的哪个位置开始搜索。换句话说,indexOf()会从该参数指定的位置向后搜索,忽略该位置之前的所有字符;而lastIndexOf()则会从指定的位置向前搜索,忽略该位置之后的所有字符。

    var string = "hello world";
    alert(string.indexOf("o",6));//7
    alert(string.lastIndexOf("o",6));//4
    

    在使用所有第二个参数的情况下,可以通过循环调用indexOf()lastIndexOf()来找到所有匹配的子字符串。

    var str = "Lorem ipsum dolor sit amet, consectetur adipisicing elit";
    var positions  = [];
    var pos = str.indexOf("e");
    
    while(pos > -1){
      positions.push(pos);
      pos = str.indexOf("e",pos+1);
    }
    alert(positions);//"3,24,32,35,52"
    

    6、trim():创建一个字符串的副本,删除前置和后缀的所有空格,然后返回结果。

    var str = "  hello world   ";
    var trimStr = str.trim();
    alert(str);"  hello world  "
    alert(trimStr);//"hello world"
    

    7、字符串大小写转换方法:有四个:toLowerCase()、toLocaleLowerCase()、toUpperCase()、toLocalUpperCase()

    var str = "hello world";
    alert(str.toLocaleUpperCase());//"HELLO WORLD"
    alert(str.toUpperCase());//"HELLO WORLD"
    alert(str.toLocalLowerCase());//"hello world"
    alert(str.toLowerCase());//"hello world"
    

    相关文章

      网友评论

        本文标题:JavaScript字符串方法

        本文链接:https://www.haomeiwen.com/subject/viridxtx.html