split方法我算是白学了

wc,同志们,javascript中字符串的split方法会用么。我最近发现我是白用这么多年了,导致我刷题时遇到一个问题死活没看出来是什么原因。今天必须要记录一下。如果你也和我一样,那在评论区留言,让我好受一点。

在说问题之前先来看一下split 最基本的两种应用

字符参数

split 方法是用来做字符串分割的,使用这个方法最常用的形式也是使用指定字符来对原字符串进行分割。比如下面的代码

'as:st:vii'.split(':') 

使用 : 对原字符串进行分割,结果是一个数组,这应该是平时用的比较多的用法了

正则参数

有时候用来的分割并不是特定的字符,而是一类字符,比如数字分割

'as2st3vii'.split(/d/)

正则d 表示所有数字,只要是数字就认为是一个分割符,这就非常灵活了。


问题一

以上就是基本的应用了,那怎么又说白学了呢。来看下面的代码,

`asabstcdvii`.split(/(ab|cd)/)

思考一下结果是什么?用字符串ab或者cd分割,如果你觉得返回值是['as', 'st', 'vii']那请去评论区反省一下。


这才是正确结果,把分割符ab,cd也一并返回了,如果你回答对了,去评论区秀一把吧,反正我当年没学到这个功能。只能怪当年学习的时候不知道还有MDN

简单解释一下,在正则表达中如果出现了捕获组, 那么这些捕获组的内容也会在结果中返回

如果我们把正则瞎改改,改的复杂一点。

`asabstcdvii`.split(/(a|c)(b|d)/)

可以看出来,正则表达式中所有的捕获组都会在结果数组中返回。

那这种功能有什么用呢。我也没有实现应用场景,毕竟以前根本不知道这个功能。下面这是硬想出来的功能代码

function addYear(date) {
  const arr = date.split(/(-|/)/);
  arr[0] = Number(arr[0]) + 1;
  return arr.join('');
}

如果日期字符串分割符可能是 -也可能是 / 如果不使用捕获组在字符串分割之后,就无法方便的辨别原字符串中的分割符是什么了


问题二

先别走,还没完。除了这些,这个split方法还支持第二个参数 limit,限制结果数组的长度。

`asabstcdvii`.split(/(a|c)(b|d)/, 2);

看出来就是取没limit参数的结果数组的前几项。听起来比较拗口。自己理解一下吧,我讲不清楚

阅读全文
下载说明:
1、本站所有资源均从互联网上收集整理而来,仅供学习交流之用,因此不包含技术服务请大家谅解!
2、本站不提供任何实质性的付费和支付资源,所有需要积分下载的资源均为网站运营赞助费用或者线下劳务费用!
3、本站所有资源仅用于学习及研究使用,您必须在下载后的24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担!
4、本站站内提供的所有可下载资源,本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发),但本站不保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug!如有链接无法下载、失效或广告,请联系客服处理!
5、本站资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您的合法权益,请立即告知本站,本站将及时予与删除并致以最深的歉意!
6、如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
7、如果您喜欢该资源,请支持官方正版资源,以得到更好的正版服务!
8、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容!
原文链接:https://www.shuli.cc/?p=21397,转载请注明出处。
0

评论0

显示验证码
没有账号?注册  忘记密码?