重学JavaScript之字符串方法

400 阅读3分钟

1、字符串长度(length)

var str = 'abcdefg';
console.log(str.length); //7

2、查找字符串中的字符串

 1)indexOf()   返回字符串中指定文本首次出现的索引(位置)

var str = 'abcdefg';
str.indexOf('d')        //3

2) lastIndexOf()   返回字符串中制定文本最后一次出现的索引(位置)

var str = 'abcdefgabcd';
str.lastIndexOf('a')     //7

若未找到查询的文本,两种方法都返回-1;

两种方法都接受检索起始位置所谓第二个参数

var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("China", 18);    //51

var str = "The full name of China is the People's Republic of China.";
var pos = str.lastIndexOf("China", 50);    //17

3) 检索字符串中的字符串(search)

var str = 'abcdefg';
str.search('d')        //3

search()和indexOf()这两个方法是相似的,但是也有不同点:

       ①:search()方法无法设置第二个参数

       ②:indexOf()方法无法设置更强大的搜素值(如正则表达式)

3、提取部分字符串

1) slice()  提取部分字符串并在新字符串中返回提取的部分

   两个参数(起始位置索引,终止位置索引)

var str = 'Apple, Banana, Mango'
str.slice(3, 10)    //le, Ban
如果某个参数为负,则从字符串的结尾开始计数

2)substring()  substring方法很类似于slice方法,不同是substring方法不接受负数索引

var str = "Apple, Banana, Mango";
var res = str.substring(7,13);        //Banana

3)substr()    substr() 类似于slice(),不同的是substr方法第二个参数是截取的字符串的长度

var str = "Apple, Banana, Mango";
var res = str.substr(7,6)       //Banana
如果首个参数为负,则从字符串的结尾计算位置。

如果省略第二个参数,则该 slicce()和substring(),substr() 将裁剪字符串的剩余部分。

4、替换字符串内容

replace()方法用另一个值替换在字符串中指定的值

var str = "I am jsKai";
str.replace("js", "jishu");    //I am jishuKai

replace()方法对大小写敏感,若想对大小写不敏感,则需用正则表达式的/i

var str = "I am jsKai";
str.replace("/JS/I", "jishu");    //I am jishuKai

5、大小写转换

通过 toUpperCase() 把字符串转换为大写,toLowerCase() 把字符串转换为小写:

var text1 = "Hello World!";       // 字符串
text1.toUpperCase();  // HELLO WORLD

var text2 = "Hello World!";
text2.toLowerCase();    //hello world

6、concat()方法:连接2个或多个字符串

var text1 = "Hello";
var text2 = "World";
text3 = text1.concat(" ",text2);    //Hello world

var text = "Hello" + " " + "World!";
var text = "Hello".concat(" ","World!");

这两行是等效的

7、trim() 删除字符串两边的空白符

var str = "       Hello World!        ";
alert(str.trim());        // Hello World!

Internet Explorer 8 或更低版本不支持 trim() 方法。

如需支持 IE 8,您可搭配正则表达式使用 replace() 方法代替:

var str = "       Hello World!        ";
alert(str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''));

8、提取字符串字符

1)charAt()方法返回字符串中指定下标(位置)的字符串:

var str = "HELLO WORLD";
str.charAt(0);            // 返回 H

2)charCodeAt() 方法返回字符串中指定索引的字符 unicode 编码:

var str = "HELLO WORLD";

str.charCodeAt(0);         // 返回 72

9、把字符串转换为数组(split)

var txt = "a,b,c,d,e";   // 字符串
txt.split(",");          // 用逗号分隔   ["a", "b", "c", "d", "e"]
txt.split(" ");          // 用空格分隔   ["a,b,c,d,e"]
txt.split("|");          // 用竖线分隔   ["a,b,c,d,e"]

如果分隔符是 "",被返回的数组将是间隔单个字符的数组:

var txt = "Hello";       // 字符串
txt.split("");           // 分隔为字符    //["H", "e", "l", "l", "o"]