字符串新增方法(startsWith, endsWith, repeat)

ES6为JavaScript的String对象引入了几个实用的新方法,极大地简化了字符串处理操作。本文将重点介绍三个常用的新增方法:startsWith()endsWith()repeat()

startsWith() 方法

startsWith()方法用于判断字符串是否以指定的子字符串开头,返回布尔值。

语法

javascript 复制代码
str.startsWith(searchString[, position])

参数

  • searchString:要搜索的子字符串
  • position(可选):开始搜索的位置,默认为0

示例

javascript 复制代码
const str = 'Hello, world!';

console.log(str.startsWith('Hello'));  // true
console.log(str.startsWith('world'));  // false
console.log(str.startsWith('world', 7));  // true (从索引7开始搜索)

endsWith() 方法

endsWith()方法用于判断字符串是否以指定的子字符串结尾,返回布尔值。

语法

javascript 复制代码
str.endsWith(searchString[, length])

参数

  • searchString:要搜索的子字符串
  • length(可选):作为字符串长度使用,默认为原始字符串长度

示例

javascript 复制代码
const str = 'Hello, world!';

console.log(str.endsWith('world!'));  // true
console.log(str.endsWith('Hello'));    // false
console.log(str.endsWith('Hello', 5)); // true (只检查前5个字符)

repeat() 方法

repeat()方法返回一个新字符串,表示将原字符串重复指定次数后的结果。

语法

javascript 复制代码
str.repeat(count)

参数

  • count:重复次数,必须是非负整数

示例

javascript 复制代码
const str = 'abc';

console.log(str.repeat(3));   // 'abcabcabc'
console.log(str.repeat(2.5)); // 'abcabc' (小数会被取整)
console.log(str.repeat(0));   // ''

实际应用场景

  1. 文件扩展名检查
javascript 复制代码
function isImageFile(filename) {
  return filename.toLowerCase().endsWith('.jpg') || 
         filename.toLowerCase().endsWith('.png');
}
  1. URL协议验证
javascript 复制代码
function isSecureUrl(url) {
  return url.startsWith('https://');
}
  1. 生成重复模式字符串
javascript 复制代码
function createIndent(level) {
  return ' '.repeat(level * 2);
}

注意事项

  1. 这些方法都是区分大小写的
  2. startsWith()endsWith()可以接受正则表达式作为参数,但会将其视为字符串
  3. repeat()的参数如果是负数或Infinity会抛出RangeError

这些新增的字符串方法使JavaScript的字符串处理更加简洁和直观,减少了开发者编写复杂正则表达式或循环的需求,提高了代码的可读性和维护性。