如何通过正则表达式计算和查找下划线,如果下划线数量连续大于2个且小于4个,执行某些操作,如果下划线数量大于4个,执行其他操作。
$('div').text(function(i, text) {
var regex2 = /_{2,4}/g;
var regex4 = /_{4,999}/g;
//var regexLength = text.match(regex).length;
if (regex2.test(text)) {
return text.replace(regex2, '،');
} else if (regex4.test(text)) {
return text.replace(regex4, '');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
Blah_Blah _ BlahBlah __ test ____ Blah _________________________________________
</div>
我想做的是,查找两个以上连续的下划线并将其替换为 逗号
,如果下划线连续出现四次以上,则将其替换为空白。
现在:
<div>
Blah_Blah _ BlahBlah __ test ____ Blah _________________________________________
</div>
目标:
<div>
Blah_Blah _ BlahBlah , test , Blah
</div>
问题:
第二个regex
表达式(超过四个下划线)的效果不如预期。
_{2,4}
匹配 2、3 或 4 个下划线。_{4,999}
匹配 4 个到 999 个下划线。你的模式重叠。 - Wiktor Stribiżew4,999
,然后在 else 语句中检查2,4
。 - anubhavaunderscore
,但我相信将来我需要添加更多。因为这被用作用户输入的清理工具。我认为两者都很有效。 - Pedram