每个JavaScript开发人员都应该知道两种字符串函数

369 阅读3分钟

我遇到的问题

我最近在一个项目上,我客户端能够基于单个日期和日期范围来查询订单数据,我知道这很令人兴奋!

因而组件返回的数据是这种形式的日期“'2019-08-02T00:00:00.000Z”'。但是,我需要使用以下格式:'2019-08-02'。因此,我需要将时间与日期时间字符串分开,并从字符串中删除双引号。

我尝试过

使用正在表达式的形式获取、或者使用字符串截取的方式,但对我来说没有任何意义,因为我不太满意。所以我并没有使用这些方法!

String.prototype.split()发挥作用

到我在MDN上的快速搜索split方法的描述,如下所示:

通过在指定分隔符字符串的每个实例处分离字符串,关于分隔符,要注意的一个非常重要的事情是它必须存在于字符串中

我们先来看下下面的例子

因为data中并没有,所以并不能将其拆分,但是,如果我们将分隔符调整为一个相似的值,比如说字母“ a”呢?让我们来看看:

那我们现在该怎么办呢?

没关系,split()通过提供一个可选的limit参数可以为您提供便利。但是要注意的是,一旦达到限制,split就会停止尝试拆分字符串,并仅提供到目前为止已分离的内容。因此,假设我们只希望我们的“data”字符串仅由字母“ a”拆分,那么将得到如下所示的结果:

好的,但是这如何解决我的日期时间问题呢?


您还记得吗,我有一个日期时间字符串,看起来像这样:'“ 2019-08-02T00:00:00.000Z”'。现在运用我们的新的知识,我就可以获得的日期时间中的时间戳部分了。所以我会这样做:

至此也就就解决了!但是,双引号问题呢?我该如何解决?

String.prototype.replace()来解救!

这是replace()的作用,它将您要使用的字符串作为第一个参数,并将要引入的字符串作为第二个参数。所以它是这样的:

它使用双正斜杠来替换要删除的字符串。这还允许您添加诸如字母i之类的内容,以指示您希望搜索不区分大小写,或者添加g指示您希望搜索是全局的,即在字符串中找到的所有位置。

因此,要解决我们的问题,我们将其按以下方式使用:

至此我们只使用一行代码就完成了想要的结果!

结论

希望对您有所帮助。在寻求正则表达式之前,您不需要了解很多但可以解决与字符串有关的问题,请尝试更深入地研究JavaScript字符串方法。请喜欢,分享和发表评论,以便更多需要此功能的人可以看到它!