## 定义
```
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高级程序设计》