推荐一个正则匹配的网站 https://regex101.com/
let str =
'有四只小动物排成一排,摄影师给相邻的两只小动物拍了下面三张照片。
( )排在最左边,( )排在最右边。';
// 使用正则表达式匹配style中的width样式,并将大于375的部分替换为375px
let result = str.replace(
/(]*style="[^"]*?)(\bwidth\s*:\s*\d+[^;"]*?px;)(\s?height\s*:\s*\d+[^;"]*?px;)([^<]*\/>)/gi,
function (match, p1, p2, p3, p4) {
console.log(" ~ file: test.js:8 ~ p4:", p4);
console.log(" ~ file: test.js:8 ~ p3:", p3);
console.log(" ~ file: test.js:8 ~ p2:", p2);
console.log(" ~ file: test.js:8 ~ p1:", p1);
console.log(" ~ file: test.js:8 ~ match:", match);
let widthValue = parseInt(p2.match(/\d+/)[0]);
let heightValue = parseInt(p3.match(/\d+/)[0]);
if (widthValue > 375) {
return p1 + "width: 375px; height: auto;" + p4;
}
return match; // 如果width小于等于375,则不做替换,保持原样
}
);
console.log(" ~ file: test.js:20 ~ result:", result);