目录
1、indexof()
2、charAt()
3、concat()
4、substring()
5、substr()
6、slice()
7、replace()
8、replaceAll()
9、split()
10、trim()
11、match()
var str1 = 'hello world';
var p = str1.indexOf('l');
console.log(p); //2
p = str1.indexOf('l', 3);
console.log(p); //3
p = str1.indexOf('l', 4);
console.log(p); //9
p = str1.indexOf('llo');
console.log(p); //2
p = str1.indexOf('lloo');
console.log(p); //-1
注意:在indexof()的参数中,可以是单个字符,找到就返回其第一个位置,找不到就返回-1。
var str = 'hello world';
var c = str.charAt(7);
console.log(c); //o
c = str.charAt(-1);
console.log(c); // 没有输出 不报错
c = str.charAt(20);
console.log(c); // 没有输出 不报错
注意:当指定的索引值没有在字符串的范围内时,不会出错,但也不会有输出。
var str = 'hello';
var s = str.concat(' world', '!');
console.log(s); //hello world!
注意:
(1)使用concat() 来拼接字符串和使用加号来拼接字符串的效果是一样的,但是使用concat()更优雅一点。
(2)但是在开发中都要避免其使用,特别是用于循环中(内存占用)。
var str = 'charset';
console.log(str);
var s = str.substring(1); // harset 截取从下标为1的字符到字符串最后
console.log(s);
s = str.substring(1, 5);
console.log(s); //hars 左闭右开
s = str.substring(1, 3);
console.log(s); // ha
s = str.substring(3, 1);
console.log(s); // ha 等于s = str.substring(1, 3);
s = str.substring(-1);
console.log(s); //如果给的第一个参数是负数,那么它会把字符串复制后返回。
说明:
(1)如果只指定了第一个参数,那么子字符串会从指定的位置到末尾;
(2). 如果两个参数都指定了,那么子字符串就会从开始位置到结束位置前的字符;(左闭右开)
var str = 'charset';
console.log(str);
var s = str.substr(1, 2);
console.log(s); //ha
s = str.substr(4, 2);
console.log(s); //se 从索引号为4截取2位
s = str.substr(2);
console.log(s); // arset 截取到最后
s = str.substr(-2);
console.log(s); // et 返回向截取
注意:
(1)这个方法的参数是从那个位置开始,截取多少个字符。
(2)如果两个参数都指定了,那么就从指定的位置开始截取指定长度的字符来形成新的字
var str = 'The morning is upon us.';
console.log(str);
var s = str.slice(5);
console.log(s); //orning is upon us.
s = str.slice(5, 9);
console.log(s); //orni
s = str.slice(5, -3);
console.log(s); //orning is upon
s = str.slice(-1, 5);
console.log(s); //无输出内容
说明:
(1)这个方法的功能和substr()的功能类似,都是用于截取子字符串的。
(2)如果只指定第一个参数,则会从指定位置到原字符串末尾。
(3)如果指定两个参数,则会提取从指定位置到结束位置的字符。
(4)如果第二个参数是负数,则会提取从指定位置到从后向前数结束位置的字符。
(5)如果第一个参数是负数,无输出,不会报错。
var str = 'Twas the night before Xmas...';
console.log(str);
// 把字母 e 替换为 ,
var s = str.replace('e', ',');
console.log(s); //Twas th, night before Xmas... 只替换了一个
s = str.replace(/\s+/ig, '-');
console.log(s); //Twas-the-night-before-Xmas... 替换了所有空格
注意:
var str = 'TwAs the night before Xmas...';
console.log(str);
var s = str.replaceAll('as', ',');
console.log(s); //TwAs the night before Xm,...
s = str.replaceAll(/\s+/g, '-');
console.log(s); //TwAs-the-night-before-Xmas...
s = str.replaceAll(/as/ig, ',');
console.log(s); //Tw, the night before Xm,...
注意:
(1)replaceAll() 方法会替换掉所有被查找到的字符 ;
(2)replaceAll() 方法中如果要使用正则表达式,那么必须要添加全局匹配参数(/g)。
var str = "Hello World How are you doing";
console.log(str);
var arr = str.split(' ');
console.log(arr);
arr = str.split(/\s+/);
console.log(arr);
str = "Hello,World,How,are,you,doing";
console.log(str);
arr = str.split(',');
console.log(arr);
说明:
(1)split() 方法会根据指定的分隔符对字符串进行切割,生成一个数组;
(2)split() 方法支持正则表达式来进行切割。
var str = ' char set ';
console.log(str);
var s = str.trim();
console.log(s); //char set 没有前后的空格 中间的空格不能去除
注意:只能删除前后的空格 ,中间的空格不能去除。
match() 方法检索返回一个字符串匹配正则表达式的结果。
var str = 'For more information, see Chapter 3.4.5.1';
console.log(str); // 定义一个正则表达式
var regex = /see (chapter \d+(\.\d)*)/i;
var flag = str.match(regex);
console.log(flag);