|
kuing
发表于 2024-2-24 14:57
本帖最后由 kuing 于 2024-2-24 16:15 编辑 我觉得你说得对,是等效的。
但为何这样写建议去问作者😄
(纯瞎猜……:
说不定这样写会匹配得更快?因为他预估那一块绝大多数情况下都是英文字母?
==========
用以下两段代码来检测时间:
- const str = "aaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddd";
- const reg1 = /(?:[a-zA-Z]|.)/g;
- console.time("a-z");
- for(let i=0;i<10000;i++){
- str.match(reg1)
- }
- console.timeEnd("a-z");
复制代码- const str = "aaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddd";
- const reg2 = /(?:.)/g;
- console.time(".");
- for(let i=0;i<10000;i++){
- str.match(reg2)
- }
- console.timeEnd(".");
复制代码
经多次运行(包括谁先谁后,都试过),发现并无明显差别,看来猜测并不对。 |
|