首页 > 解决方案 > 使用正则表达式将所有输入标签替换为其值

问题描述

这里我是一个使用正则表达式来删除 html 输入标签。但我必须用它的价值来代替。我需要删除没有值的输入标签。结果应该 <td> 15200 </td>在 td 标签上。

function fnTextValue() {
  var tab_text = "<td><input name='MyTextBox' type='text' value='15200' id='MyTextBoxId'></td>";
  console.log(tab_text);
  
  tab_text = tab_text.replace(/<input[^>]*>|<\/input>/gi, "");
  console.log(tab_text);
}
<button id="btnExport" onclick="fnTextValue();">
  Text Value
</button>

标签: javascriptregex

解决方案


字符串操作比正则表达式更快,您可以使用@Pete 想法。如果您真的尝试使用正则表达式解决,您可以执行以下操作。

tab_text = tab_text.replace(/<input[^>]*value\s*=\s*["'](.+?)["']\s*[^>]*>/,"$1");

JS解决方案是

var ele = document.getElementsByTagName("input");
for(var x of ele){ 
    if(x){
    var val = x.value;
    var node = document.createTextNode(val); 
    x.after(node);
    x.remove();
}

推荐阅读