JS字符串判断 startsWith() endsWith()
ヤッハロー、Kaiqisanすうう、一つふつうの学生プログラマである, 耽搁许久,今天重新回来讲讲数组字符串的一些方法。好巧不巧,这还是一个ES6的方法。
startsWith(val, num)
判断字符串是否以XXX开头,它有俩参数,第一个是判断的参考字符串,第二个是判断开始的下标,默认为0。它有返回值,如果符合条件就返回true,反之就返回false
let str = 'append'
let flag = str.startsWith('app')
console.log(flag); // true
它等同于
let str = 'append'
let flag = str.indexOf('app') === 0
console.log(flag); // true
现在添加第二个判断参数
let str = 'append'
let flag = str.startsWith('en', 3)
console.log(flag); // true
它等同于
let str = 'append'
let flag = str.indexOf('en') === 3
console.log(flag); // true
**PS:**第二个参数务必取用合法值(0 ---- str.length - 1),如果大于str.length - 1的话,取值永远为false,如果小于0的话,取值永远为true。
**PS:**如果第一个判断参数取空值的话 ""
,判断永远为true
endsWith(val, num)
判断字符串是否以XXX结尾,它有俩参数,第一个是判断的参考字符串,第二个意思是截取字符串前n位,然后再开始判断。默认为str.length。它有返回值,如果符合条件就返回true,反之就返回false
let str = 'append'
let flag = str.endsWith('end')
console.log(flag); // true
它等同于
let str = 'append'
let flag = str.indexOf('end') === str.length - 'end'.length
console.log(flag); // true
现在添加第二个判断参数
let str = 'append'
let flag = str.endsWith('pe', 4)
console.log(flag); // true
它的判断过程是这样的,首先读取第二个参数,先截取前四位字符串 "appe"
, 然后开始判断这个字符串是否以 "pe"
,结果为true.
它等同于
let str = 'append'
let flag = str.indexOf('pe') === 4 - 'pe'.length
console.log(flag); // true
PS: 第二个参数务必取用合法值(1 ---- str.length),如果大于str.length的话,第二个参数默认变成str.length,如果小于1的话,取值永远为false。
PS:如果第一个判断参数取空值的话 ""
,判断永远为true
总结
这俩方法还有一个总的注意点,就是不可使用正则表达式作为判断依据,否则必报错,况且这两个方法就是来查询字符串是否以某字符串开始或结束。
还有一个需要注意的就是这两个方法的单词拼写,是startsWith 和 endsWith 不是startWith 和 endWith,注意不要丢掉这个s,单词拼错是编程里面最低级的错误,俺也是踩了不少这个坑(o(╥﹏╥)o)。