搜索
首页web前端js教程为ecmascript做准备6:新的字符串方法 -​​ string.protype。

为ecmascript做准备6:新的字符串方法 -​​  string.protype。

>在我的上一篇有关ES6数组方法的文章中,我介绍了与数组类型一起使用的Ecmascript 6中可用的新方法。在本教程中,您将了解与字符串一起使用的新ES6方法:String.Prototype。

>我们将开发几个示例,并提及可用于它们的多填充。请记住,如果您想使用一个库将它们全部填充,可以使用Paul Miller的ES6-Shim。

钥匙要点

eS6引入了几种用于字符串操作的新方法,包括string.prototype.startswith(),string.prototype.endswith(),string.prototype.includes(),strign.prototype.repeat(),and.raw( )。这些方法提供了更轻松,更有效的方法来检查字符串是否以给定的子字符串启动或结束,如果字符串包含某个子字符串,重复一个指定数量的字符串,以及处理模板字符串。
    string.prototype.startswith()和string.prototype.endswith()中ES6中的方法允许您验证字符串是否以给定的子字符串启动或结束。他们既接受substring和位置作为参数,并根据字符串开始或以所提供的子字符串结束而返回true或false。
  • > string.prototype.includes()方法ES6中的方法如果在另一个字符串中包含一个字符串,则无论位置如何,都会返回true。它接受与startswith()和endswith()方法相同的参数。
  • > ES6中的String.prototype.repeat()方法
  • string.prototype.startswith()
  • >每个现代编程语言中最常用的功能之一是验证字符串是否以给定的子字符串开头的一种。在ES6之前,JavaScript没有这样的功能,这意味着您必须自己写。以下代码显示了开发人员通常如何填充它:

或,或者:

<span>if (typeof String.prototype.startsWith !== 'function') {
</span>  <span>String.prototype.startsWith = function (str){
</span>    <span>return this.indexOf(str) === 0;
</span>  <span>};
</span><span>}
</span>
这些片段仍然有效,但是它们并没有准确地重现新的可用string.prototype.startswith()方法。新方法具有以下语法:

<span>if (typeof String.prototype.startsWith !== 'function') {
</span>  <span>String.prototype.startsWith = function (str){
</span>    <span>return this.substring(0, str.length) === str;
</span>  <span>};
</span><span>}
</span>
>您还可以看到,除了一个子字符串外,它还接受了第二个参数。搜索串参数指定要验证的子字符串是字符串的开始。位置表示启动搜索的位置。位置的默认值为0。如果字符串从提供的子字符串开始,则方法返回true,否则为false。请记住,该方法对情况很敏感,所以“ Hello”与“ Hello”不同。

>

此方法的一个示例用途如下:
<span>String.prototype.startsWith(searchString[, position]);
</span>
<span>if (typeof String.prototype.startsWith !== 'function') {
</span>  <span>String.prototype.startsWith = function (str){
</span>    <span>return this.indexOf(str) === 0;
</span>  <span>};
</span><span>}
</span>

>以下代码的实时演示如下所示,也可在JSBIN上找到。

> 除了Internet Explorer,该方法在节点和所有现代浏览器中都支持该方法。如果您需要支持较旧的浏览器,则可以在MDN的方法页面上找到该方法的多填充。 Mathias Bynens也开发了另一个多填充。

string.prototype.endswith()> ecmascript 6介绍string.prototype.endswith()方法。它验证字符串是否用给定的子字符串终止。如下所示,此方法的语法与string.prototype.startswith():

>非常相似。

如您所见,此方法接受与String.prototype.startswith()相同的参数,并且还返回相同类型的值。

一个区别在于,位置参数使您可以在字符串中搜索,就好像字符串仅此字符串一样长。换句话说,如果我们有字符串房屋,并且使用'house'.endswith('us',4)称呼该方法,我们会获得True,因为这就像我们实际上有字符串Hous(请注意缺少的“ E”) 。

<span>if (typeof String.prototype.startsWith !== 'function') {
</span>  <span>String.prototype.startsWith = function (str){
</span>    <span>return this.substring(0, str.length) === str;
</span>  <span>};
</span><span>}
</span>
此方法的一个示例用途如下:

>以下片段的实时演示如下所示,也可以在JSBIN上找到。

除了Internet Explorer,该方法在节点和所有现代浏览器中都支持该方法。如果您需要支持较旧的浏览器,则可以在MDN的方法页面上找到该方法的多填充。 Mathias Bynens开发了另一个多填充。

string.prototype.includes()

<span>String.prototype.startsWith(searchString[, position]);
</span>
>我们正在谈论验证另一个字符串是否包含在另一个字符中时,让我向您介绍string.prototype.includes()方法。如果在另一个何处,另一个字符串包含在另一个,则返回true。

其语法如下所示:

>

参数的含义与string.prototype.startswith()相同,因此我不会重复它们。此方法的示例用途如下:

>

>您可以在下面找到一个现场演示,也可以在JSBIN上找到。

> 除了Internet Explorer,

string.prototype.includes()在节点和所有现代浏览器中都支持。如果您需要支持较旧的浏览器,就像本教程中讨论的其他方法一样,您可以找到Mathias Bynens提供的多填充(这个人知道如何做他的工作!),而在Mozilla开发人员网络上进行了另一种。

<span>const str = 'hello!';
</span><span>let result = str.startsWith('he');
</span>
<span>// prints "true"
</span><span>console.log(result);
</span>
<span>// verify starting from the third character
</span>result <span>= str.startsWith('ll', 2);
</span>
<span>// prints "true"
</span><span>console.log(result);
</span>
注意:在版本48之前,Firefox使用非标准名称包含。

string.prototype.repeat()

<span>String.prototype.endsWith(searchString[, position]);
</span>
>现在让我们继续使用另一种类型的方法。 String.Prototype.repeat()是一种返回一个新字符串的方法,该新字符串包含被调用但重复指定次数的相同字符串。该方法的语法为以下:

>

<span>if (typeof String.prototype.startsWith !== 'function') {
</span>  <span>String.prototype.startsWith = function (str){
</span>    <span>return this.indexOf(str) === 0;
</span>  <span>};
</span><span>}
</span>

时间参数指示必须重复字符串的次数。如果通过零,您将获得一个空字符串,而如果通过一个负数或无穷大,则会获得Rangeerror。

此方法的一个示例用途如下:

<span>if (typeof String.prototype.startsWith !== 'function') {
</span>  <span>String.prototype.startsWith = function (str){
</span>    <span>return this.substring(0, str.length) === str;
</span>  <span>};
</span><span>}
</span>
>以下代码的实时演示如下所示,也可以在JSBIN上找到。

> 除了Internet Explorer,该方法在节点和所有现代浏览器中都支持该方法。如果您需要支持较旧的浏览器,则可以为此方法提供两个polyfills:Mathias Bynens开发的一种和Mozilla Developer Network上的另一个。

> string.raw()

我想在本教程中介绍的最后一个方法是string.raw()。它被定义为

模板字符串的标签函数

。这很有趣,因为它是模板库的替代品,尽管我不确定它可以扩展足够的扩展以实际替换这些库。但是,这个想法基本上是与我们不久之后所看到的。它的作用是编译字符串并用提供的值替换每个占位符。>

它的语法为以下(请注意Backticks):> TemplateString参数表示包含模板进行过程的字符串。

为了更好地理解这个概念,让我们看看一个具体的示例:>

>以下代码的实时演示如下所示,也可以在JSBIN上找到。
<span>String.prototype.startsWith(searchString[, position]);
</span>
>

除了Opera和Internet Explorer,该方法在节点和所有现代浏览器中都支持。如果您需要支持较旧的浏览器,则可以使用多填充,例如在NPM上可用的浏览器。

结论

在本教程中,您已经了解了与字符串一起使用的Ecmascript 6中引入的几种新方法。我们尚未涵盖的其他方法是string.fromcodepoint(),string.prototype.codepointat()和string.prototype.normalize()。希望您喜欢这篇文章,并且您将继续遵循我们的频道以了解有关Ecmascript6的更多信息。
<span>const str = 'hello!';
</span><span>let result = str.startsWith('he');
</span>
<span>// prints "true"
</span><span>console.log(result);
</span>
<span>// verify starting from the third character
</span>result <span>= str.startsWith('ll', 2);
</span>
<span>// prints "true"
</span><span>console.log(result);
</span>
经常询问有关ES6字符串方法的问题

>

>在ES6?

ES6中引入了哪些新的字符串方法,也称为Ecmascript 2015,引入了几种新的字符串方法,以使字符串操作更加容易,更有效。其中包括诸如startswith(),endswith(),include(),repot()和模板文字之类的方法。 startswith()方法检查字符串是否以指定的字符串开头,而endSwith()检查字符串是否以指定的字符串结束。 Incluber()方法检查字符串是否包含指定的字符串。重复()方法重复一个指定数量的字符串。模板文字允许您使用$ {}语法将表达式嵌入字符串文字中。

> startswith()方法如何在ES6?

中起作用ES6中的startswith()方法用于确定字符串是否从指定字符串的字符开始。如果字符串从指定的字符串开始,则返回true,否则为false。语法是str.startswith(搜索string [,position])。搜索串是在Str开始时要搜索的字符。可选的位置是搜索启动的字符串中的位置。如果省略,搜索将从字符串的开头开始。

>

eS6?

中的endswith()方法是什么?带有指定字符串的字符。如果字符串以指定的字符串结束,则返回true。语法是str.endswith(搜索string [,lenth])。搜索串是在Str结束时要搜索的字符。可选的长度是要搜索的字符串的长度。如果省略,使用字符串的长度。在另一个字符串中找到。如果字符串包含指定的字符串,则返回true。语法为str.crudes(searchstring [,位置])。搜索串是要搜索的字符串。可选的位置是在开始搜索的字符串中的位置。如果省略,则搜索从字符串的开头开始。

>

eS6?

中的重复()方法是什么?指定数量的字符串副本被称为串联在一起。语法是str.repeat(count),其中计数是重复字符串的次数。计数必须在0到无穷大之间,而不是一个负数。

模板文字如何在es6?

eS6中的模板文字中起作用。您可以在其中使用多行字符串和字符串插值功能。它们是由Backtick()字符而不是双引号或单个引号所包围的。模板文字可以包含占位符,以美元标志和卷曲括号表示($ {expression})。占位符和它们之间的文字中的表达式传递给函数。

> )方法用于检查字符串是否包含指定的字符串。但是,它们之间有一个关键区别。 Incluber()方法返回一个布尔值 - 如果字符串包含指定的字符串,则否则为false。另一方面,索引()方法返回指定字符串的第一次出现的索引,如果找不到字符串,则返回-1。

>我可以在所有浏览器中使用ES6字符串方法吗?但是,对于不支持ES6的较旧浏览器,您可能需要使用像Babel这样的转板器将ES6代码转换为ES5,该代码得到了更广泛的支持。

>我如何使用带有数组的ES6字符串方法?

一些ES6字符串方法可以与数组一起使用。例如,Incluber()方法可用于确定数组是否包含某个元素。但是,并非所有字符串方法都适用于数组。重要的是要了解每种方法的特定用途和局限性。

ES6?

>在ES6中标记为标记的模板文字是更高级的模板文字形式。使用标记模板,您可以用功能解析模板文字。标签函数的第一个参数包含字符串值数组。其余的论点与表达式有关。然后,标签函数可以在这些参数上执行操作并返回操纵字符串。

>

以上是为ecmascript做准备6:新的字符串方法 -​​ string.protype。的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
JavaScript数据类型:浏览器和nodejs之间是否有区别?JavaScript数据类型:浏览器和nodejs之间是否有区别?May 14, 2025 am 12:15 AM

JavaScript核心数据类型在浏览器和Node.js中一致,但处理方式和额外类型有所不同。1)全局对象在浏览器中为window,在Node.js中为global。2)Node.js独有Buffer对象,用于处理二进制数据。3)性能和时间处理在两者间也有差异,需根据环境调整代码。

JavaScript评论:使用//和 / * * / * / * /JavaScript评论:使用//和 / * * / * / * /May 13, 2025 pm 03:49 PM

JavaScriptusestwotypesofcomments:single-line(//)andmulti-line(//).1)Use//forquicknotesorsingle-lineexplanations.2)Use//forlongerexplanationsorcommentingoutblocksofcode.Commentsshouldexplainthe'why',notthe'what',andbeplacedabovetherelevantcodeforclari

Python vs. JavaScript:开发人员的比较分析Python vs. JavaScript:开发人员的比较分析May 09, 2025 am 12:22 AM

Python和JavaScript的主要区别在于类型系统和应用场景。1.Python使用动态类型,适合科学计算和数据分析。2.JavaScript采用弱类型,广泛用于前端和全栈开发。两者在异步编程和性能优化上各有优势,选择时应根据项目需求决定。

Python vs. JavaScript:选择合适的工具Python vs. JavaScript:选择合适的工具May 08, 2025 am 12:10 AM

选择Python还是JavaScript取决于项目类型:1)数据科学和自动化任务选择Python;2)前端和全栈开发选择JavaScript。Python因其在数据处理和自动化方面的强大库而备受青睐,而JavaScript则因其在网页交互和全栈开发中的优势而不可或缺。

Python和JavaScript:了解每个的优势Python和JavaScript:了解每个的优势May 06, 2025 am 12:15 AM

Python和JavaScript各有优势,选择取决于项目需求和个人偏好。1.Python易学,语法简洁,适用于数据科学和后端开发,但执行速度较慢。2.JavaScript在前端开发中无处不在,异步编程能力强,Node.js使其适用于全栈开发,但语法可能复杂且易出错。

JavaScript的核心:它是在C还是C上构建的?JavaScript的核心:它是在C还是C上构建的?May 05, 2025 am 12:07 AM

javascriptisnotbuiltoncorc; saninterpretedlanguagethatrunsonenginesoftenwritteninc.1)javascriptwasdesignedAsalightweight,解释edganguageforwebbrowsers.2)Enginesevolvedfromsimpleterterterpretpreterterterpretertestojitcompilerers,典型地提示。

JavaScript应用程序:从前端到后端JavaScript应用程序:从前端到后端May 04, 2025 am 12:12 AM

JavaScript可用于前端和后端开发。前端通过DOM操作增强用户体验,后端通过Node.js处理服务器任务。1.前端示例:改变网页文本内容。2.后端示例:创建Node.js服务器。

Python vs. JavaScript:您应该学到哪种语言?Python vs. JavaScript:您应该学到哪种语言?May 03, 2025 am 12:10 AM

选择Python还是JavaScript应基于职业发展、学习曲线和生态系统:1)职业发展:Python适合数据科学和后端开发,JavaScript适合前端和全栈开发。2)学习曲线:Python语法简洁,适合初学者;JavaScript语法灵活。3)生态系统:Python有丰富的科学计算库,JavaScript有强大的前端框架。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中