JavaScript 中的字符串(String)是一种基本的数据类型,用于表示文本数据。字符串是不可变的,这意味着一旦创建了一个字符串,就不能更改它的内容。字符串提供了多种方法来处理和操作文本数据,其中之一就是获取子串。
子串(Substring)是指从一个字符串中提取的一部分连续字符序列。
JavaScript 提供了几种方法来获取字符串的子串:
substring(startIndex, endIndex)
startIndex
开始到 endIndex
结束(不包括 endIndex
)的子串。endIndex
,则返回从 startIndex
到字符串末尾的所有字符。slice(startIndex, endIndex)
substring
类似,但支持负数索引。substr(startIndex, length)
startIndex
开始的指定长度的子串。length
,则返回从 startIndex
到字符串末尾的所有字符。let str = "Hello, World!";
// 使用 substring 方法
console.log(str.substring(0, 5)); // 输出: "Hello"
// 使用 slice 方法
console.log(str.slice(-6)); // 输出: "World!"
// 使用 substr 方法
console.log(str.substr(7, 5)); // 输出: "World"
问题:当索引超出字符串长度时,substring
和 slice
方法会自动调整索引值,而 substr
方法在负数长度时会返回空字符串。
解决方法:
function safeSubstring(str, startIndex, endIndex) {
if (startIndex < 0) startIndex = 0;
if (endIndex > str.length) endIndex = str.length;
return str.substring(startIndex, endIndex);
}
console.log(safeSubstring("Hello, World!", 7, 20)); // 输出: "World!"
通过这种方式,可以确保即使在提供无效索引时,函数也能安全地返回预期的子串。
领取专属 10元无门槛券
手把手带您无忧上云