JavaScript 正则截取第二个 / 后面的内容 要求性能最优
高洛峰
高洛峰 2016-11-10 14:17:30
0
3
664

问题

正则截取第二个 / 后面的内容
例如 /test/gagaga
得到 gagaga
又如 /hahaha/yr-1-k
得到 yr-1-k

不可确定的是第二个 / 后面的内容:可能有英文,有数字,有短横线(其余没有)

可以确定的是被截取的字符串第一个字符肯定是 / ;以及两个 / 之间肯定是一串英文

可以普通的单次截取,又可以多次截取,也可以通过截取两个 / 之间的字符然后替代原字符串。

但是,怎样的性能最好呢?

采纳

六个可用回答 : 性能测试结果 ——题主自家的 Chrome 53

边城:每秒可执行约 5,790,000 次;
xzavier:每秒可执行约 5,390,000 次;
挺问中原:每秒可执行约 4,310,000 次;
同意并接受:每秒可执行约 6,590,000 次;
hping:每秒可执行约 4,730,000 次;
阿傻不傻:每秒可执行约 2,790,000 次;

结果,同意并接受 的.split('/')[2]方法性能最优。


高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

reply all(3)
三叔

零宽断言后向匹配

exec方法,部分匹配


学霸

可以确定的是被截取的字符串第一个字符肯定是 / ;以及两个 / 之间肯定是一串英文,反正都要用到字符串的方法,取值步骤少,代码少,相应性能也会好。就你说的这样:

'/test/gagaga'.replace(/\/.+\//,'');  //"gagaga"
'/hahaha/yr-1-k'.replace(/\/.+\//,''); //"yr-1-k"


三叔

split 就可以了,最简洁了吧~

'/test/gagaga'.split('/')[2]
"gagaga"
'/hahaha/yr-1-k'.split('/')[2]
"yr-1-k"

  


Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template