Skip to main content
 首页 » 编程设计

javascript之删除脚本中的 HTML 标签

2025年05月04日52tintown

我在网上找到了这段代码。它需要一个句子,并使每个单词都与这个单词相关联。但它也有弱点:如果一个句子中有 HTML,这个脚本不会删除它。

例如:它替换了'<b>asserted</b> ' 与 ' http://www.merriam-webster.com/dictionary/<b>asserted</b> '

能否请您告诉我要更改此代码中的哪些内容以更改'<b>asserted</b> ' 到 ' http://www.merriam-webster.com/dictionary/asserted '.

var content = document.getElementById("sentence").innerHTML; 
 
var punctuationless = content.replace(/[.,\/#!$%\؟^?&\*;:{}=\-_`~()”“"]/g, ""); 
var mixedCase = punctuationless.replace(/\s{2,}/g); 
var finalString = mixedCase.toLowerCase(); 
 
var words = (finalString).split(" "); 
 
var punctuatedWords = (content).split(" "); 
 
var processed = ""; 
for (i = 0; i < words.length; i++) { 
    processed += "<a href = \"http://www.merriam-webster.com/dictionary/" + words[i] + "\">"; 
    processed += punctuatedWords[i]; 
    processed += "</a> "; 
} 
 
document.getElementById("sentence").innerHTML = processed; 

请您参考如下方法:

这个正则表达式/<{1}[^<>]{1,}>{1}/g 应该用空格替换两个 <> 和括号本身之间的字符串中的任何文本。这个

  var str = "<hi>How are you<hi><table><tr>I<tr><table>love cake<g>" 
  str = str.replace(/<{1}[^<>]{1,}>{1}/g," ") 
  document.writeln(str);

会回馈“你好吗我喜欢蛋糕”。

如果你粘贴这个

var stripHTML = str.mixedCase(/<{1}[^<>]{1,}>{1}/g,"") 

就在这下面

var mixedCase = punctuationless.replace(/\s{2,}/g); 

并在之后的行中将 mixedCase 替换为 stripHTML,它可能会起作用