【发布时间】:2020-08-01 07:27:59
【问题描述】:
我刚刚开始使用 mark.js (https://markjs.io),现在我正在尝试找到合适的 RegEx 来捕获尽可能少的数据(非贪婪类型),并且不超过一定数量字符。
我尝试了多个选项,到目前为止我有这三个正则表达式,但每个都有自己的错误:
-
w(.{1,30})?3- 捕获“word1 word2 word3 word3”,而不是“word3”和“word3”; -
w(\w{1,30})?3- 按应有的方式捕获“word3”,但无法捕获“word3”; -
w((\w| ){1,30})?3- 这与上面的第一个选项完全相同。
为了更好的理解,请运行下面的代码。
请问你觉得我错过了什么?
亚历克斯
var regex = /w(.{1,30})?3/i;
// var regex = /w(\w{1,30})?3/i;
// var regex = /w((\w| ){1,30})?3/i;
var instance = new Mark(document.querySelector("body"));
instance.markRegExp (regex, {
className: "mark"
});
.mark {
color: white;
background: red;
}
<script src="https://cdn.jsdelivr.net/mark.js/8.8.3/mark.min.js"></script>
<div>word1 word2 word3 wo rd3 word4</div>
【问题讨论】: