字符串
(1)子串的识别
ES6 之前判断字符串是否包含子串,用 indexOf 方法,ES6 新增了子串的识别方法
- includes():返回布尔值,判断是否找到参数字符串。
var str="hello,减哈看见"
console.log(String.prototype)
var re1=str.includes("减")
var re2=str.includes(" ")
var re3=str.includes("")
console.log(re)
- startsWith():返回布尔值,判断参数字符串是否在原字符串的头部。
- endsWith():返回布尔值,判断参数字符串是否在原字符串的尾部。
以上三个方法都可以接受两个参数,需要搜索的字符串,和可选的搜索起始位置索引
var str="182828323410"
var str2=str.startsWith("81",1)
var str3=str.endsWith("2341",11)//第二个参数 待研究
console.log(str2,str3)
注意:
- 这三个方法只返回布尔值,如果需要知道子串的位置,还是得用 indexOf 和 lastIndexOf 。
- 这三个方法如果传入了正则表达式而不是字符串,会抛出错误。而 indexOf 和 lastIndexOf 这两个方法,它们会将正则表达式转换为字符串并搜索它。
(2)字符串重复
repeat():返回新的字符串,表示将字符串重复指定次数返回。
var str="哈哈"
var str2=str.repeat(2)
console.log(str2)
**补充:**敏感字符串替换
var str="再见一次666"
var str2="*".repeat(str.length)
console.log(str2)
(3)字符串补全
- padStart:返回新的字符串,表示用参数字符串从头部补全原字符串。
- padEnd:返回新的字符串,表示用参数字符串从尾部补全原字符串。
以上两个方法接受两个参数,第一个参数是指定生成的字符串的最小长度,第二个参数是用来补全的字符串。如果没有指定第二个参数,默认用空格填充。
var str="99"
var str2=str.padEnd(6,"abc")
var str3=str.padStart(6,"abc")
console.log(str2,str3)
(4)模板字符串
模板字符串相当于加强版的字符串,用反引号 `,除了作为普通字符串,还可以用来定义多行字符串,还可以在字符串中加入变量和表达式。
//普通字符串
let string = `Hello'\n'world`;
console.log(string);
//多行字符串
let string1 = `Hey,
can you stop angry now?`;
console.log(string1);
//变量名写在 ${} 中,${} 中可以放入 JavaScript 表达式。
let name = "Mike";
let age = 27;
let info = `My Name is ${name},I am ${age+1} years old next year.`
console.log(info);
//字符串中调用函数
function f(){
return "have fun!";
}
let string2= `Game start,${f()}`;
console.log(string2); // Game start,have fun!
注意:模板字符串中的换行和空格都是会被保留的。