字符串方法
查找字符串
- indexOf()
- 返回字符串中首次出现的索引
- 可以又第二个参数,当传入第二个参数的时候,从传入数字下标开始找
- 没找到返回-1
- lastIndexOf()
- 返回字符串中最后一次出现的索引
- 可以又第二个参数,当传入第二个参数的时候,从传入数字下标开始找
- 没找到返回-1
- search()
- 搜索特定值的字符串,并返回匹配的位置
- 没找到返回-1
indexOf() 与 search() 方法是相等的。区别是search() 无法设置第二个参数,indexOf() 无法设置更强大的搜素值(正则表达式)
var str = "The full name of China is the People's Republic of China."
console.log(str.indexOf('China')); // 17 从头部开始找,找到就返回下标
console.log(str.lastIndexOf('China')); // 51 从尾部开始找,找到就返回下标
//当传入第二个参数的时候,从传入数字下标开始找
console.log(str.indexOf('China', 18)); // 51
console.log(str.lastIndexOf('China', 50)); // 17
console.log(str.search('China')); // 17
提取部分字符串
- slice(start, end)
- 提取从 starts 索引开始到 end 索引结束的字符串[start, end]
- 只有一个参数,则提取从 starts 索引开始直到结尾
- 提取不到返回空字符串
- 参数为负数,则从字符串的结尾开始计数
var str = "Apple,Banana,Mango";
console.log(str.slice(6, 11)); //Banana [6, 11]
console.log(str.slice(6)); // Banana,Mango
console.log(str.slice(18)); // ""
console.log(str.slice(-5)); // Mango
- substring(start, end)
- substring() 与 slice() 相同,只是substring()参数不接收负数
- substr(start, length)
- 提取从 start 索引开始后 length 个字符
- length 不能为负数
- 只有一个参数,则提取 start 索引开始直到结尾
- start 为负数时,从字符结尾开始计数
- 提取不到返回空字符串
var str = "Apple,Banana,Mango";
console.log(str.substr(6, 6)); //Banana
console.log(str.substr(6)); //Banana,Mango
console.log(str.substr(-5)); //Mango
console.log(str.substr(18)); //""
替换字符串
- replace(oldStr, newStr)
- 区分大小写
- 返回的是一个新的字符串
- 默认只替换首个匹配的,可以使用正则表达式匹配。i(不区分大小写) g(全局匹配)
var str = "Please visit Mic and Mic!";
console.log(str.replace('Mic', 'W3c')); //Please visit W3c and Mic!
console.log(str.replace('MIC', 'W3c')); //Please visit Mic and Mic!
console.log(str.replace(/MIC/i, 'W3c'));//Please visit W3c and Mic!
console.log(str.replace(/MIC/ig, 'W3c'));//Please visit W3c and W3c!
字符串转大小写
- toUpperCase()
- 转大写
- toLowerCase()
- 转小写
var str = "Hello World!"
console.log(str.toUpperCase());// HELLO WORLD!
console.log(str.toLowerCase());// hello world!
字符串连接
- concat()
var test1 = "hello";
var test2 = "world";
console.log(test1.concat(" ", test2, " ", test1));// hello world hello
去字符两端空格
- trim()
- IE9以下不兼容,可以使用 replace() 搭配正则表达式替换空格。
var str = ' hello world ';
console.log(str.trim());// hello world
var str = " Hello World! ";
alert(str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''));// Hello World!
字符串转数组
- split()
var str = "a,b,c,d";
console.log(str.split(""));// ["a", ",", "b", ",", "c", ",", "d"]
console.log(str.split(","));// ["a", "b", "c", "d"]
提取字符串中的字符
- charAt()
- 返回找到的字符,没有找到返回空字符串
- charCodeAt()
- 返回找到字符的 Unicode 的编码,没有找到返回 NaN
var str = "HELLO WORLD";
console.log(str.charAt(1));// E
console.log(str.charAt(100));// ''
console.log(str.charCodeAt(1));// 69
console.log(str.charCodeAt(100));// NaN
console.log(str[1]); // E