gpt4 book ai didi

javascript - 正则表达式计数下划线

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:54:41 26 4
gpt4 key购买 nike

如何通过 Regex 计算并找到 underscore 然后如果它大于 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>

我想做的是,连续找到两个以上、四个以下的下划线,用逗号替换,如果四个以上的下划线替换为nothing

现在:

<div>
Blah_Blah _ BlahBlah __ test ____ Blah _________________________________________
</div>

目标:

<div>
Blah_Blah _ BlahBlah , test , Blah
</div>

问题:

第二个 regex (超过四个下划线) 没有按预期工作。

JSFiddle

最佳答案

下面是如何在没有多个正则表达式 testreplace 调用的情况下在单个正则表达式中执行此操作:

var str = 'Blah_Blah _ BlahBlah __ test ____ Blah _________________________________________'
var r = str.replace(/_{2,}/g, function(m) { return (m.length>4 ? '' : ',') })
console.log(r)

//=> Blah_Blah _ BlahBlah , test , Blah

关于javascript - 正则表达式计数下划线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47867777/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com