javascript split()
怪我咯
怪我咯 2017-04-10 17:45:01
[JavaScript讨论组]
 <script type="text/javascript">
        var b="fffggg";
         c=b.split("fff");
        console.log(c);
    </script>

为什么运行完之后c的值是["", "ggg"],变成了空字符串。这是为什么?

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(6)
PHPz

这么说吧。
split()属于字符串的一个方法(函数)。
这个方法(函数)是有返回值,就是返回一个数组。

这个方法(函数)可以接收两个参数,
str.split(sp)
sp 当找到一个 sp 时,sp 会从字符串中被移除,剩下的就字符串就会push到数组里。
mit 一个整数,限定返回的分割片段数量。split 方法仍然分割每一个匹配的 sp,但是返回的数组只会截取最多 mit 个元素。

如果什么都不传就会把字符传转换成一个数组

var ss = 'abcde';
ss.split(); // ['abcde']
ss.split('a') // ['','bcde'];
ss.split('bc')  //['a','def'];
ss.split('bc',1)  // ['a'];

至于为啥第一个匹配的字符串,会在数组里返回为空,我只能说是作者设计的时候,搞忘了,毕竟大家众所周知,js有很多设计缺陷;

ringa_lee

split安装传入的参数把字符串分割成数组,fffggg中fff前面是空的后面是ggg,所以就是这个数组了...

伊谢尔伦

这么写给你看吧。。

"" + "fff" + "ggg" = "fffggg";
ringa_lee

已 fff作为分割,所以不会在结果里。看看文档吧

PHPz

亲,那个方法是分割的方法,应该支持正则吧,如果需要把fffggg分割,使用正则\w{3}试试

ringa_lee

"ab".split("") ~~ ["a","b"],明白了吗

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号