更多字符串API
以下均为字符串的实例方法
-
includes("substr", index)
判断字符串中是否包含指定的子字符串
该函数的第二个参数为查找的起始索引,其默认为0
-
startsWith("substr", index)
判断字符串是否已指定的子字符串开头
该函数的第二个参数为查找的起始索引,其默认为0
-
endsWith("substr")
判断字符串是否已指定的子字符串结束
-
repeat(n)
将字符串重复指定的次数,然后返回一个新字符串
正则中的粘连标记
标记符号:y
含义:匹配时,直接从lastIndex所指的位置开始匹配,若从该位置开始的字符串满足要求则匹配成功,否则匹配失败
var str = "123abc";
var reg = /abc/;
reg.lastIndex = 0;
console.log(reg.test(str)); // true
reg = /abc/y;
reg.lastIndex = 0;
console.log(reg.test(str)); // false
reg.lastIndex = 3;
console.log(reg.test(str)); // true
模版字符串
原始的字符串方式在书写换行时较为繁琐,需要使用转义字符来辅助换行
var str = "123\
abc"
并且原始字符串的拼接工作也较为麻烦
var name = "张三";
var str = "123" + name + "abc";
模版字符串就很好地解决了这两个问题
模版字符串的格式:将字符串的开始和结束位置加入`即可
在模版字符串中直接换行就会直接成为字符串中的换行
模版字符串中可以使用${}进行插值操作,其中{}内可以是任意的JS表达式
var name = "张三";
var str = `123
${name}
abc`;
若要在模版字符串中显示${},可以给${}中的$进行转义
`使用${}可以在模版字符串中进行插值操作`
模版字符串标记
模版字符串前面可以加上一个函数标记,当执行到该模版字符串时,会自动调用对应的函数,而函数的返回值则会成为模版字符串的返回值
模版字符串的 n 个插值符号,会将字符串分割为 n+1 个部分,这些分割出来的子串会被放入到一个数组中,当通过模版字符串来调用标记函数时,就会把该数组作为第一个参数传入,后续的参数就是一个个插入的值
const str = myTag`abc${1+1}edf${2*2}ghi`; // 调用mtTag函数
function myTag(arr, exp1, exp2){
console.log(arr, exp1, exp2); // ["abc", "edf", "ghi"] 2 4
return true;
}
console.log(str); // true