4 回答

TA貢獻(xiàn)1963條經(jīng)驗(yàn) 獲得超6個(gè)贊
var str = "lajishuju..Ejhohaodf98 a.length+b.length+10+:rowspan=a.length + b.length+ c.length20:rowspan=a.length+b.length lajishujudsjalfj)Ufaojd";
var r = str.replace(/(:rowspan=)(.+?)(?=\d*:rowspan)/g, function (...m)
{
m[2] = m[2].replace(/\b([a-z]\w*\.length)/g, 'sub.$1');
return m[1] + m[2];
});
console.log(r);

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超6個(gè)贊
var str = "lajishuju..Ejhohaodf98 a.length+b.length+10+:rowspan=a.length + b.length+ c.length20:rowspan=a.length+b.length lajishujudsjalfj)Ufaojd";
let reg=/:rowspan=[^\d]*?(?:([a-z])\.length\s*\+\s*)+(?:([a-z])\.length)[^\d]*?\d+/g;
let result=str.replace(reg,$1=>$1.replace(/([a-z]\.)(?=length)/g,'sub.$1'));
console.log(result);
//lajishuju..Ejhohaodf98 a.length+b.length+10+:rowspan=sub.a.length + sub.b.length+ sub.c.length20:rowspan=a.length+b.length lajishujudsjalfj)Ufaojd

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊
str.replace(/:rowspan=([^\d]+)\d/g, function($1){return $1.replace(/(\w.length)/g, '^^.$1')})
至少需要2個(gè)正則 因?yàn)橐粋€(gè)正則沒(méi)辦法在選定范圍的情況下同時(shí)匹配里面隨機(jī)個(gè)數(shù)的表達(dá)式

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超16個(gè)贊
var str = "lajishuju..Ejhohaodf98 a.length+b.length+10+:rowspan=a.length + b.length+ c.length20:rowspan=a.length+b.length lajishujudsjalfj)Ufaojd:rowspan=a.length + b.length2fsdfsdfsdf:rowspan=a.length + b.length2";
var gap = ':rowspan=';
var arrs = str.split(gap);
var head = arrs.shift();
var cnt = arrs.map(function(v){
if(/\d+/.test(v)){
var m = v.replace(/(\w*\.length)/g,'sub.$1');
return gap + m;
}else{
return gap + v;
}
});
var ret = head + cnt.join('');
添加回答
舉報(bào)