问题
正则截取第二个 / 后面的内容
例如 /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]方法性能最优。
欧阳克2016-11-10 14:18:12
可以确定的是被截取的字符串第一个字符肯定是 / ;以及两个 / 之间肯定是一串英文,反正都要用到字符串的方法,取值步骤少,代码少,相应性能也会好。就你说的这样:
'/test/gagaga'.replace(/\/.+\//,''); //"gagaga" '/hahaha/yr-1-k'.replace(/\/.+\//,''); //"yr-1-k"
三叔2016-11-10 14:17:55
split 就可以了,最简洁了吧~
'/test/gagaga'.split('/')[2] "gagaga" '/hahaha/yr-1-k'.split('/')[2] "yr-1-k"