Javascript字符串

## 定义
```
var str = new String("abcdefg");
var str = "abcdefg";
```

## 常用方法
### 字符方法
1.charAt(index):返回下标为index的字符
```
//字符串“Hello World!”下标为1的字符
var str = "Hello World!";
console.log(str.charAt(1)); // e
```
2.方括号[index]:返回下标为index的字符(IE8以前不支持,会返回undefined)
```
//字符串“Hello World!”下标为1的字符的ASCII码
var str = "Hello World!";
console.log(str[1]); // e
```
3.charCodeAt():返回下标为index的字符编码(ASCII码)
```
//字符串“Hello World!”下标为1的字符的ASCII码
var str = "Hello World!";
console.log(str.charCodeAt(1)); // 101
```
### 拼接字符串
1.str.concat(str1,str2,str3....):str与str1,str2,str3...进行拼接
```
// 将"Hello"," World!","My Blog!"三个字符串拼接起来
var str1 = "Hello";
var str2 = " World!";
var str3 = "My Blog!";
var str4 = str1.concat(str2,str3);
console.log(str4); // Hello World!My Blog!
```
2.加号+
```
// 将"Hello"," World!","My Blog!"三个字符串拼接起来
var str1 = "Hello";
var str2 = " World!";
var str3 = "My Blog!";
var str4 = str1 + str2 + str3;
console.log(str4); // Hello World!My Blog!
```
### 剪切字符串
1.str.slice(start,end):获取[start,end)之间的字符串
若start,end为正数,从前往后计算,获取[start,end)之间的字符串,注意end是开区间,开头第一个字符的下标从0开始
若start,end为负数,从后往前计算,获取[start,end)之间的字符串,末尾第一个字符的下标从-1开始 ``` var str = "Hello World!"; //获取str的“llo” var subStr1 = str.slice(2,5); console.log(subStr1); // llo //获取str的“orl” var subStr2 = str.slice(-5,-2); console.log(subStr2); //orl ``` 2.str.substr(start,length):从下标为start位置开始获取长度为length的字符串。
注意,若start为负数的话,表示从后向前进行计算start的位置,-1表示最后一个字符 ``` var str = "Hello World!"; // 获取字符串Hello var subStr1 = str.substr(0,5); console.log(subStr1); // Hello //获取字符串World var subStr2 = str.substr(-6,5); console.log(subStr2); // World ``` 3.str.substring(start,end):提取[start,end)之间的字符串,注意start,end都要非负 ``` var str = "Hello World!"; //获取str的“llo” var subStr1 = str.substring(2,5); console.log(subStr1); // llo ``` ### 字符串位置方法 1.indexOf(searchvalue,fromindex):从fromindex开始向后寻找searchvalue首次出现的位置,默认为0。 ``` // 获取下列字符串的字符‘o’的所有位置 var str = "Hello World! Welcome to my Blog!"; var arr = []; var pos = str.indexOf('o'); arr.push(pos); while(true){ pos = str.indexOf('o',pos+1); if(pos == -1) break; arr.push(pos); } console.log(arr); // [4, 7, 17, 22, 29] ``` 1.lastIndexOf(searchvalue,fromindex)从fromindex开始向前寻找searchvalue首次出现的位置,默认为0。 ``` // 获取下列字符串的字符‘o’的所有位置 var str = "Hello World! Welcome to my Blog!"; var arr = []; var pos = str.lastIndexOf('o'); arr.push(pos); while(true){ pos = str.lastIndexOf('o',pos-1); if(pos == -1) break; arr.push(pos); } console.log(arr); // [29, 22, 17, 7, 4] ``` ### 删除多余空格 trim():去除字符串两端多余的空格  ``` //由于输出字符串空格不好看出来,所以输出长度看看 var str = " abc "; console.log(str.length); // 5 str = str.trim(); console.log(str.length); //3 ``` ### 比较字符串 str1.localeCompare(str2):
返回0:字符串str1等于参数str2。
返回负数:字符串str1的字典序先于参数str2。
返回正数:字符串str2的字典序后于参数str2。
``` var str1 = "yellow"; console.log(str1.localeCompare("yellow")); //0 console.log(str1.localeCompare("zoo")); //-1 console.log(str1.localeCompare("abc")); //1 ``` ### 模式匹配 涉及到正则表达式,内容太多,以后专门写个博文总结。


#### 参考文献: - [1]《javascript高级程序设计》      
原文地址:https://www.cnblogs.com/zsboy/p/4930230.html