es6 新增操作方法
检索子字符串
- 字符串是否包含子串 : str.includes(待判断字符,查找的起始位置) 返回值:有 true ,没有 false
- 判断子串是否在指定位置:str.startsWith(待判断字符,指定位置) 返回值:在指定位置 true ,没有 false
- 判断参数字符串是否在原字符串的尾部:str.endsWith(待判断字符,查找的长度) 返回值:如果待判断字符,是查找长度内的最后一个字符,则返回true,否则返回false
let str = "12356";
console.log(str.endsWith(5, 5)); // fales
console.log(str.endsWith(5, 4)); // true
console.log(str.endsWith(5, 3)); // false
注意:
- 这三个方法只返回布尔值,如果需要知道子串的位置,还是得用 indexOf 和 lastIndexOf 。
- 这三个方法如果传入了正则表达式而不是字符串,会抛出错误。而 indexOf 和 lastIndexOf 这两个方法,它们会将正则表达式转换为字符串并搜索它。
字符串重复:
- str.repeat(n) 若n = 0,或者无参数 则输出 空字符串,否则,str重复n次
let str = "12356";
console.log(str.repeat(2)); // 1235612356
替换:
-
str.replace(目标字符,替换目标字符的内容);
返回值:被替换后新字符串
注意:不改变原字符串
var str = "12";
var str1 = str.replace(2, "456");
console.log(str); // 12
console.log(str1); // 1456
字符串补全:
- str.padStart(参数1,参数2);
- str.padEnd(参数1,参数2);
注意:如果第二个参数省略,则用 “ ” 空格 补全
let str = "gjhsdgjas";
// 用参数字符串从头部(左侧)补全原字符串
var str1 = str.padStart(20, '@');
console.log(str1 ); // @@@@@@@@@@@gjhsdgjas
// 参数字符串从尾部(右侧)补全原字符串。
var str2 = str.padEnd(20, '@');
console.log(str2); // gjhsdgjas@@@@@@@@@@@
参数1:最小补全长度(ps:当字符串的长度小于最小补全长度时,补全)
参数2:用来填补长度的字符
模板字符串:
- 模板字符串相当于加强版的字符串,用反引号 `,除了作为普通字符串,还可以用来定义多行字符串,还可以在字符串中加入变量和表达式。
var arr = [1, 5, 8];
var str = ` huiashds${arr} `;
function fn() {
return "545";
}
var str = ` huiashds${fn()} `;
原生js字符串操作方法
字符方法:
- str.charAt(index); // 返回指定索引处的字符。索引范围为从 0 到 length- 1。
- charCodeAt(index); // 返回指定位置的字符的 Unicode 编码()
- String.fromCharCode(); // 可接受一个指定的 Unicode 值作为参数,然后返回相应字符
链接两个或多个字符串:
- str.concat(参数1,参数2,...);
截取字符串:
- str.slice(start,end); // 复制从下标 start 开始 到 end(不包含此下标) 结束的字符
- str.substring(from,to); // 截取 从 from 开始,到 to(不包含此下标) 结束的字符串片段 (ps:参数必须为正数,若 from < to 则两个值交换位置)
- str.substr(start,length); // 从 start 开始 ,截取长度为 length 的字符串片段
var str = "1234567890";
console.log(str.substr(2, 5)); // 34567
console.log(str.substring(9, 5)); // 6789
console.log(str.slice(3, 9)); // 3456789
检索字符串:
- indexof(searchvalue,start) // 判断字符串是否包含指定的子字符串 , 返回值:指定字符串的下标
- lastIndexOf(searchvalue,start) // 方法将从后向前(从start 开始)检索字符串,但返回是从起始位置 (0) 开始计算子字符串最后出现的位置。 看它是否含有字符串
- search(searchvalue) :方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串
以上前两种方法的返回值:找到,返回指定下标,找不到返回 -1
去除两端空白:
- str.trim(); // 去除字符串两端的空格
大小写转换方法 :
- to(Locale)UpperCase() :参数值无。所有小写字符全部被转换为大写字符。
- to(Locale)LowerCase():参数值无。所有大写字符全部被转换为小写字符。
将一个字符串分割成字符串数组:
- split(separator,limit):用于把一个字符串分割成字符串数组。
var str = "1234567890";
console.log(str.split()); // ["1234567890"]
console.log(str.split('')); //["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"]
console.log(str.split("1")); //["", "234567890"]
console.log(str.split("5")); // ["1234", "67890"]
参数1:(可选)分隔符,字符串或正则表达式,从该参数指定的地方分割
参数2:可选。该参数可指定返回的数组的最大长度
注意:如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。