如何在正则表达式中保留值并删除其他值(属性 html 字符串)?

How to keep values and remove the others (attributes html string) on a regular expression?

我想知道是否可以通过常规实验保留某些值并删除其他值。

我有这个代码:

var str = '<td class="sky" data-toggle="up" id="heaven" > Link to heaven </td>';

var res = str.replace(/(data-toggle=")([a-zA-Z0-9:;\.\s\(\)\-\,]*)(")/gi, '');

console.log(res);

我的结果如下:

<td class="sky"  id="heaven" > Link to heaven </td>

我希望得到这样的结果(逆):

<td data-toggle="up" > Link to heaven </td>

那么,您的要求是用新的属性设置 data-toggle="up" 替换 TD 元素的所有现有属性设置,对吗? 如果是这样,也许您可​​以使用以下正则表达式。
查找:<td .+?>(.+)</td>
替换:<td data-toggle="up" ></td>

see

var str = '<td class="sky" data-toggle="up" id="heaven" > Link to heaven </td>';

var res = str.replace(/(<\w+)(\s*[\w-]+="[^"]+")*(\s*data-toggle="[^"]+")(\s*[\w-]+="[^"]+")*(\s*>)/g, '');

console.log(res);