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)); // ''
实际应用场景
- 文件扩展名检查:
javascript
function isImageFile(filename) {
return filename.toLowerCase().endsWith('.jpg') ||
filename.toLowerCase().endsWith('.png');
}
- URL协议验证:
javascript
function isSecureUrl(url) {
return url.startsWith('https://');
}
- 生成重复模式字符串:
javascript
function createIndent(level) {
return ' '.repeat(level * 2);
}
注意事项
- 这些方法都是区分大小写的
startsWith()
和endsWith()
可以接受正则表达式作为参数,但会将其视为字符串repeat()
的参数如果是负数或Infinity会抛出RangeError
这些新增的字符串方法使JavaScript的字符串处理更加简洁和直观,减少了开发者编写复杂正则表达式或循环的需求,提高了代码的可读性和维护性。