获取 JavaScript 中特定字符后的子字符串
获取特定字符后的子字符串:
-
使用
String.indexOf()
方法获取字符在字符串中的索引。 -
使用
String.slice()
方法获取特定字符后的子字符串。
const str = 'abc fql_jiyik.com';
const after_ = str.slice(str.indexOf('_') + 1);
console.log(after_); // 👉️ "jiyik.com"
String.slice()
方法提取字符串的一部分并将其返回,而不修改原始字符串。
String.slice()
方法采用以下参数:
- start 索引要包含在返回的子字符串中的第一个字符的索引
- end 索引要从返回的子字符串中排除的第一个字符的索引
当只有一个参数被传递给 String.slice()
方法时,切片会到达字符串的末尾。
const str = 'abc fql_jiyik.com';
console.log(str.slice(10)); // 👉️ jiyik.com
我们使用 String.indexOf
方法获取特定字符第一次出现的索引。
const str = 'abc fql_jiyik.com';
console.log(str.indexOf('_')); // 👉️ 7
console.log(str.indexOf('_') + 1); // 👉️ 8
我们将 1 添加到调用 indexOf()
的结果中,因为我们不想在新字符串中包含该字符。
如果字符串不包含指定字符,则 indexOf()
方法返回 -1。
const str = 'abc fql_jiyik.com';
const result = str.slice(str.indexOf('@') + 1);
console.log(result); // 👉️ abc fql_jiyik.com
如果字符不包含在字符串中,则返回整个字符串。
JavaScript 索引是从零开始的,因此字符串中第一个字符的索引为 0,最后一个字符的索引为
str.length - 1
。 定义一个可重用的函数#
如果我们必须经常这样做,请定义一个可重用的函数。
function afterCharacter(string, char) {
return string.slice(str.indexOf(char) + 1);
}
const str = 'abc fql_jiyik.com';
// 👇️ jiyik.com
console.log(afterCharacter(str, '_'));
// 👇️ fql_jiyik.com
console.log(afterCharacter(str, ' '));
afterCharacter
函数接受一个字符串和一个字符作为参数,返回指定字符之后的字符串部分。
或者,我们可以使用 str.split()
方法。
使用 String.split() 获取特定字符后的子字符串
获取特定字符后的子字符串:
- 使用 split() 方法在字符上拆分字符串。
- 访问索引为 1 的字符串数组。
- 数组中的第一个元素是字符之后的子字符串。
const str = 'abc fql_jiyik.com';
const after_ = str.split('_')[1];
console.log(after_); // 👉️ jiyik.com
我们使用 String.split()
方法在每次出现下划线时拆分字符串。
const str = 'abc bobby_hadz.com';
// 👇️ [ 'abc bobby', 'hadz.com' ]
console.log(str.split('_'));
数组中的第二个元素是指定字符(示例中的下划线)之后的子字符串。
处理字符不在字符串中的场景
如果在字符串中找不到分隔符,则 split()
方法返回一个仅包含 1 个元素的数组,该元素由整个字符串组成。
const str = 'abc fql_jiyik.com';
// 👇️ [ 'abc fql_jiyik.com' ]
console.log(str.split('@'));
如果我们访问数组中的第二个元素,我们将得到一个未定义的值。
处理此问题的一种方法是,如果未找到分隔符,则使用逻辑 OR ||
运算符返回整个字符串。
const str = 'abc fql_jiyik.com';
const after_ = str.split('@')[1] || str;
console.log(after_); // 👉️ abc fql_jiyik.com
我们使用逻辑 OR ||
运算符来提供后备值,以防运算符左侧的值是假的(例如未定义)。
如果分隔符不包含在字符串中,则表达式返回整个字符串。
定义一个使用 split() 的可重用函数
如果我们必须经常这样做,请定义一个可重用的函数。
function afterCharacter(string, char) {
return string.split(char)[1] || string;
}
const str = 'abc fql_jiyik.com';
// 👇️ jiyik.com
console.log(afterCharacter(str, '_'));
// 👇️ fql_jiyik.com
console.log(afterCharacter(str, ' '));
// 👇️ abc fql_jiyik.com
console.log(afterCharacter(str, '#'));
该函数接受一个字符串和一个字符作为参数,返回指定字符之后的字符串部分。
我们还可以使用 Array.pop()
方法代替字符串索引。
const str = 'abc fql_jiyik.com';
const after_ = str.split('_').pop();
console.log(after_); // 👉️ jiyik.com
我们使用 String.split()
方法在字符上拆分字符串。
const str = 'abc fql_jiyik.com';
console.log(str.split('_')); // 👉️ [ 'abc fql', 'jiyik.com' ]
最后一步是使用 Array.pop()
方法获取数组的最后一个元素。
Array.pop()
方法移除并返回最后一个数组元素。
如果字符串包含多次出现的字符,请不要使用 split()
请注意
,如果字符串包含多次出现的字符,则不应使用String.split()
方法。
const str = 'A very_long_string';
// 👇️ [ 'A very', 'long', 'string' ]
console.log(str.split('_'));
const after_ = str.split('_').pop();
console.log(after_); // 👉️ string
String.split()
方法在所有出现的字符处拆分字符串,因此访问最后一个数组元素不再是一个选项。
在这种情况下,我们应该使用前面副标题中所示的 String.slice()
方法。
const str = 'abc fql_jiyik.com';
const after_ = str.slice(str.indexOf('_') + 1);
console.log(after_); // 👉️ "jiyik.com"
indexOf()
方法返回字符第一次出现的索引,我们使用 String.slice()
方法获取字符之后的字符串切片。
相关文章
使用 CSS 和 JavaScript 制作文本闪烁
发布时间:2023/04/28 浏览次数:146 分类:CSS
-
本文提供了使用 CSS、JavaScript 和 jQuery 使文本闪烁的详细说明。
如何在 C 语言中获取子字符串
发布时间:2023/03/30 浏览次数:81 分类:C语言
-
本教程介绍了在 C 语言中从一个 char 中获取子字符串的不同方法。本教程介绍了在 C 语言中使用 memcpy()和 strncpy()函数。
在 PHP 变量中存储 Div Id 并将其传递给 JavaScript
发布时间:2023/03/29 浏览次数:69 分类:PHP
-
本文教导将 div id 存储在 PHP 变量中并将其传递给 JavaScript 代码。
在 JavaScript 中从字符串中获取第一个字符
发布时间:2023/03/24 浏览次数:93 分类:JavaScript
-
在本文中,我们将看到如何使用 JavaScript 中的内置方法获取字符串的第一个字符。