Javascript之String类型知识整理

来源:互联网 发布:淘宝网亨吉利可信吗 编辑:程序博客网 时间:2024/06/05 17:46

         我们日常呈现给用户看的数据多数是需要在代码中进行处理的,此时就少不了对各种数据字符串的处理,现在将相关字符串知识点整理如下:

         String类型每个实例都有一个length属性,返回字符串中包含字符的个数,如

            var stringValue = 'hello world';

            alert(stringValue.length); // 11

            一、字符方法------------------访问字符串中特定位置的字符

           (1)chatAt(): 接收一个基于0的字符位置,返回字符串中对应位置的字符;

           (2)chatCodeAt():类似上,但返回对应位置字符的字符编码

           (3)使用方括号加数字索引:stringValue[1]  //"e"

            二、字符串操作方法-----------------基于子字符串创建新字符串

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

             var stringValue = "hello ";

             var result = stringValue.concat("world")

             alert(result); // "hello world"

             alert(stringValue); // "hello "       原字符串不发生改变

           可以往concat()中传入更多参数,表示拼接多个字符串

           (2)其他三种方法:接收一或两个参数,第二个参数为可选-----------提取字符串

              ①slice():提取字符串的某个部分,并以新的字符串返回被提取的部分

                  接收两个参数,提取的起始位置和提取的结束位置(不包括结束位置),若出现负数,则从最后一个字符串

             算起,如-1 表示最后一个字符位置

              ②substring():作用和参数同上,但参数只能是整数,若出现负参数转化为0后进行提取

              ③substr:作用同上,但参数不同,参数一依然为起始位置,若为负数则从最尾算起。参数二为提取的长度

           三、字符串位置方法 ------------查找字符串

            (1)indexOf(): 从一个字符串中搜索给定的子字符串,然后返回子字符串的位置,若没有则返回-1

            (2)lastIndexOf():作用同上,但是从尾开始搜索。

             以上两个方法都必须接收第一个参数(要搜索的字符串),同时还有可选的第二个参数(搜索的起始位置)

             可以结合循环来找到所有匹配的子字符串,如下:

            

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


            四、trim()方法

              创建一个字符串的副本,删除前置和后缀的所有空格,返回结果

            五、字符串大小写转换方法

             (1)toLowerCase()

             (2)toUpperCase()

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

             (1)match():本质上与调用RegExp的exec()方法相同,只接受一个参数,正则表达式或者一个RegExp对象

           

var text = 'cat,bat,sat,fat';var pattern = /.at/;  //只搜索到第一个后停止,加g标志后,依次搜索var matches = text.match(pattern);console.log(matches.index);console.log(matches[0]);console.log(pattern.lastIndex);

                 matches数组的第一项是与整个模式匹配的字符串,之后的每一项(如果有)保存着与正则表达式中的捕获

            组匹配的字符串。

            (2)search(): 参数与上相同,但返回字符串中第一个匹配项的索引(子字符串中第一个字符的位置),如果没有,则返回-1

            (3)简化操作 replace():接收两个参数,一为一个RegExp对象或者一个字符串,二为一个字符串(要替换的)或者一个函数,如果第一个参数为字符串的话那么只会替换第一个字符串,要想替换所有字符串,则第一个参数要为正则表达式并且指定全局标志g

               如

        

var text = "cat,bat,sat,fat";var result = text.replace("at","ond");console.log(result); //"cond,bat,sat,fat"result = text.replace(/at/g,"ond");alert(result); //"cond,bond,sond,fond"
            (4)split():这个方法可以基于指定的分隔符将一个字符串分割成多个子字符串,并将结果存放在一个数组中,
          分隔符可以是字符串,可以是一个RegExp对象,另外可以接受第二个参数指定数组的大小
            如: var colorText = "red,blue,green,yellow";
                    var colors1 = colorText.split(",");    //["red","blue","green","yellow"]
                    var colors2 = colorText.split(",",2); //["red","blue"]