我是编程新手,我正在解决这个练习。 我已经使用 string.slice() 尝试了 3 个循环,但由于某种原因它打印了一个空字符串。
请您解释一下我的代码中发生了什么,为什么它会打印错误的输出以及我如何纠正,而不是给我您的正确答案版本,以便我可以从错误中学习。
测试输入是
<p><strong><em>PHP Exercises</em></strong></p>
输出应该是 PHP 练习
p.s 这不是 PHP 练习,我没有感到困惑
这是我的代码:
function remove(answer){
var sen = answer.split("");
var arr = [];
for (var i = 0; i<answer.length; i++){
if (answer[i] == "<"){
for (var j = i; j<answer.length; j++){
if (answer[j] == ">"){
for (var k = j; k<answer.length; k++){
if (answer[k] == "<"){
return answer.slice(j+1, k);
}
}
}
}
}
}
}
最佳答案
试试这个:
function stripTags(data)
{
var tmpElement = document.createElement("div");
tmpElement.innerHTML = data;
return tmpElement.textContent || tmpElement.innerText || "";
}
var something = '<p><strong><em>PHP Exercises</em></strong></p>';
alert(stripTags(something));
或者您可以使用 string.js ( string.js link ):
var S = window.S;
var something = '<p><strong><em>PHP Exercises</em></strong></p>';
something = S(something).stripTags().s;
alert(something);
<script src="https://raw.githubusercontent.com/jprichardson/string.js/master/dist/string.min.js"></script>
如果你正在尝试 Nodejs,那么:
var S = require('string');
var something = '<p><strong><em>PHP Exercises</em></strong></p>';
something = S(something).stripTags().s;
console.log(something);
关于javascript - 如何在不使用正则表达式的情况下从 JavaScript 中的字符串中删除 HTML 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36050431/