一段html字符串如何做如下替换
如图:
let htmlStr = `<td style="width: 49.279%;"><span id="status">span>状态td>`
let htmlStr2 = `<td style="width: 49.279%;"><span id="time">span>时间td>`
如何替换成
形式:let target1 = `<td style="width: 49.279%;">${status}td>`
let target2 = `<td style="width: 49.279%;">${time}td>`
大家都有哪些比较好的处理办法呢~请多多指教,谢谢啦!
基于Monster 组和GPT的调写:
正则表达式来匹配HTML字符串中的特定文本并进行替换,例子:
let htmlStr = `<td style="width: 49.279%;"><span id="status"></span>状态</td>`;
let htmlStr2 = `<td style="width: 49.279%;"><span id="time"></span>时间</td>`;
// 使用正则表达式匹配HTML字符串中的文本
const statusRegex = /<td style="width: 49.279%;"><span id="status"><\/span>(.*?)<\/td>/;
const timeRegex = /<td style="width: 49.279%;"><span id="time"><\/span>(.*?)<\/td>/;
// 替换HTML字符串中的文本
const target1 = htmlStr.replace(statusRegex, `<td style="width: 49.279%;">$1</td>`);
const target2 = htmlStr2.replace(timeRegex, `<td style="width: 49.279%;">$1</td>`);
console.log(target1);
console.log(target2);
上面的代码中,我们首先定义了两个正则表达式statusRegex和timeRegex,它们分别用于匹配包含状态和时间的HTML字符串。然后,我们使用replace()方法将匹配到的文本替换为新的HTML字符串,其中${1}表示正则表达式中第一个捕获组的值。
输出的结果应该是:
<td style="width: 49.279%;">状态</td>
<td style="width: 49.279%;">时间</td>
可以使用字符串模板的方式来替换HTML字符串中的内容。可以先使用正则表达式提取出HTML字符串中的 id 属性值,然后将其替换为对应的变量值。
以下是一个实现示例:
const status = '待处理';
const time = '2023-02-19 12:00';
const regex = /id="(\w+)"/g; // 匹配 id 属性值的正则表达式
const target1 = htmlStr.replace(regex, `id="${status}"`); // 替换为 status 变量值
const target2 = htmlStr2.replace(regex, `id="${time}"`); // 替换为 time 变量值
上面的示例中,使用正则表达式 /id="(\w+)"/g 来匹配 HTML 字符串中的 id 属性值。其中,\w+ 表示匹配一个或多个字母、数字或下划线字符,括号内的 \w+ 表示将匹配结果保存为一个捕获组,方便后续替换操作使用。
然后,使用字符串模板的方式,将匹配到的 id 属性值替换为对应的变量值。最终得到的 target1 和 target2 分别是替换后的 HTML 字符串。