如何改进(消除太多令牌?)JavaScript中的regexp缓慢?

Vác*_*lka 8 javascript regex

我有功能在冒号之前加粗部分线.

//Fast regex (time: 0)
var colonRegex = /^[^*:\n]+:/gm;
Run Code Online (Sandbox Code Playgroud)

//Slow regex (time: 139) Limit by 10 words 
//var colonRegex = /^([^*:\n ]+ ?){1,10}:/gm;
// I have issue with it when I want to apply replace to tens of divs (it freezes chrome)

var bolded = str.replace(colonRegex, function(match) {
    return "<b>"+match+"</b>";
});
Run Code Online (Sandbox Code Playgroud)

你可以在jsfiddle上测试它:http://jsfiddle.net/damg7zuk/4/

我哪里弄错了?我可以在回调中限制字数.在正则表达式本身可以做得更好吗?谢谢你的伎俩.

vks*_*vks 0

^(?:(?=([^*:\n ]+[ ]?))\1){0,10}:
Run Code Online (Sandbox Code Playgroud)

试试这个。查看演示。

https://regex101.com/r/kX9kT1/1