JavaScript 字符串 startsWith
当我们想要确保字符串是否以特定字符串开头时,在编码时会有一些情况。
例如,我想检查给定的字符串是否以 Me
字符串开头。
今天,我们将学习如何使用 startsWith()
、indexOf()
、lastIndexOf()
、substring()
函数以及正则表达式的 test()
方法来检查字符串是否以特定字符串开头和一个带循环的自定义函数。
ECMAScript 2015(也称为 ES6)引入了 startsWith()
方法,该方法检查字符串是否以指定字符串开头。如果找到匹配,则输出 true
;否则,假
。
startsWith()
方法有两个参数:searchString
,第二个是 position
,它是可选的,默认为零。如果指定了位置,则函数从该位置搜索字符串。
在下面的例子中,我们没有指定 position
。因此,它从索引零开始区分大小写搜索。
var name = "Hi John, how are you doing?"
console.log(name.startsWith("Hi John"));
输出结果:
true
示例代码:
var name = "Hi John, how are you doing?"
console.log(name.startsWith("Hi john"));
输出结果:
false
示例代码:
var name = "Hi John, how are you doing?"
console.log(name.startsWith("how", 9)); //it starts searching and matching from index 9
输出结果:
true
indexOf()
与数组一起使用来定位元素并返回找到它的第一个索引,但我们也可以通过以下方式使用字符串。
如果匹配元素的索引为零,则表示字符串以指定字符串开头。
示例代码:
var name = "Hi John, how are you doing?"
if(name.indexOf("Hi") === 0)
console.log(true);
else
console.log(false);
输出结果:
true
它还区分大小写搜索。看看下面的示例代码。
var name = "Hi John, how are you doing?"
if(name.indexOf("hi") === 0)
console.log(true);
else
console.log(false);
输出结果:
false
如果我们想让 indexOf()
从指定位置定位元素怎么办?
var name = "Hi John, how are you doing?"
if(name.indexOf("how") === 9)
console.log(true);
else
console.log(false);
输出结果:
true
此函数返回字符串中特定值的最后一次出现的位置/索引。
它从末尾开始搜索并移向字符串的开头。如果值不存在,则返回 -1
。
我们可以稍微修改一下,通过下面的方式使用 lastIndexOf()
方法来查看字符串是否以另一个字符串开头。
示例代码:
var name = "Hi John, how are you doing?"
if(name.lastIndexOf("Hi", 0) === 0)
console.log(true);
else
console.log(false);
输出结果:
true
虽然,它从头开始搜索。但是我们在索引 0 处指定它的结尾。
请记住
,对于此功能,hi 和 Hi 是不同的。
你可以这里详细了解它。
除了指定另一个字符串来检查字符串是否以它开头,我们还可以根据字符串的长度输入索引范围。
例如,我们要检查字符串是否以 Hi
开头,因此索引如下。
var name = "Hi John, how are you doing?"
//here the end index is not included means the end index
//would be endIndex-1
console.log(name.substring(0,2));
输出结果:
Hi
如果我们寻找 Hi John
,我们可以修改它,如下所示。
var name = "Hi John, how are you doing?"
console.log(name.substring(0,7));
输出结果:
Hi John
如果你要在中间某处寻找特定的字符串部分,则使用此函数不是一个好的选择。原因是你可能在给定索引上找不到预期的字符串。
var name = "Hi John, how are you doing?"
console.log(/^Hi John/.test(name));
输出结果:
true
它也区分大小写。请参阅以下示例。
var name = "Hi John, how are you doing?"
console.log(/^Hi john/.test(name));
输出结果:
false
你还可以使用具有不同参数和属性的 RegExp
对象的方法。你可以在此处详细了解它。
你是否考虑过使用自定义函数来完成此功能?让我们看一下以下部分。
示例代码:
function startsWithFunction(completeString,starterStr) {
for (var i = 0; i < starterStr.length; i++) {
if (completeString[i] !== starterStr[i]) {
return false;
}
}
return true;
}
console.log(startsWithFunction("Hi John, how are you doing?", "Hi"));
输出结果:
true
startsWithFunction()
采用主字符串 Hi John, how are you doing?
和另一个字符串 Hi
,以检查主字符串是否以它开头。
此函数匹配每个字符并在成功时返回 true
;否则返回 false
。
相关文章
在 Angular 中上传文件
发布时间:2023/04/14 浏览次数:71 分类:Angular
-
本教程演示了如何在 Angular 中上传任何文件。我们还将介绍如何在文件上传时显示进度条,并在上传完成时显示文件上传完成消息。
Angular 中所有 Mat 图标的列表
发布时间:2023/04/14 浏览次数:91 分类:Angular
-
本教程演示了在哪里可以找到 Angular 中所有 Mat 图标的列表以及如何使用它们。
Angular 2 中的复选框双向数据绑定
发布时间:2023/04/14 浏览次数:139 分类:Angular
-
本教程演示了如何一键标记两个复选框。这篇有 Angular 的文章将着眼于执行复选框双向数据绑定的不同方法。
在 AngularJS 中重新加载页面
发布时间:2023/04/14 浏览次数:142 分类:Angular
-
我们可以借助 windows.location.reload 和 reload 方法在 AngularJS 中重新加载页面。
在 AngularJs 中设置 Select From Typescript 的默认选项值
发布时间:2023/04/14 浏览次数:78 分类:Angular
-
本教程提供了在 AngularJs 中从 TypeScript 中设置 HTML 标记选择的默认选项的解释性解决方案。
在 AngularJS 中启用 HTML5 模式
发布时间:2023/04/14 浏览次数:150 分类:Angular
-
本文讨论如何在 AngularJS 应用程序上启用带有深度链接的 HTML5 模式。
在 AngularJs 中加载 spinner
发布时间:2023/04/14 浏览次数:107 分类:Angular
-
我们将介绍如何在请求加载时添加加载 spinner,并在 AngularJs 中加载数据时停止加载器。
在 Angular 中显示和隐藏
发布时间:2023/04/14 浏览次数:78 分类:Angular
-
本教程演示了 Angular 中的显示和隐藏。在开发商业应用程序时,我们需要根据用户角色或条件隐藏一些数据。我们必须根据该应用程序中的条件显示相同的数据。
在 Angular 中下载文件
发布时间:2023/04/14 浏览次数:104 分类:Angular
-
本教程演示了如何在 angular 中下载文件。我们将介绍如何通过单击按钮在 Angular 中下载文件并显示一个示例。