js对HTML代码正则处理问题

如下面代码运行后:在js处理部分,如何对文本域输入的html代码进行正则处理,去除其他标签,只输出a标签的文本和链接,另外也在表格中显示一份结果。

<textarea id="text1" rows="10" cols="50">
<!--文本域输入的内容-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>测试网页</title>
</head>
<body>
<ul>
<li>
    <a class="js-task-item-link" href="https://www.aaa.com/111">
          <div class="title">
            <h5 class="title-text">我是文本内容1</h5>
          </div>
     </a>
</li>
<li>
    <a class="js-task-item-link" href="https://www.bbb.com/222">
          <div class="title">
            <h5 class="title-text">我是文本内容2</h5>
          </div>
     </a>
</li>
<li>
    <a class="js-task-item-link" href="https://www.ccc.com/333">
          <div class="title">
            <h5 class="title-text">我是文本内容3</h5>
          </div>
     </a>
</li>
<li>
    <a class="js-task-item-link" href="https://www.ddd.com/444">
          <div class="title">
            <h5 class="title-text">我是文本内容4</h5>
          </div>
     </a>
</li>
</ul>
</body>
</html>
<!--文本域输入的内容-->
</textarea>
<br><br>
<input type="button" id="btn" value="开始处理">
<br><br>
<textarea id="text2" rows="10" cols="50">
<!--输出的内容-->
我是文本内容1 https://www.aaa.com/111
我是文本内容2 https://www.aaa.com/222
我是文本内容3 https://www.aaa.com/333
我是文本内容4 https://www.aaa.com/444
<!--输出的内容-->
</textarea>
<br><br>
<table>
<tr><th>文本内容</th><th>链接</th></tr>
<tr><td>我是文本内容1</td><td>https://www.aaa.com/111</td></tr>
<tr><td>我是文本内容2</td><td>https://www.aaa.com/222</td></tr>
<tr><td>我是文本内容3</td><td>https://www.aaa.com/333</td></tr>
<tr><td>我是文本内容4</td><td>https://www.aaa.com/444</td></tr>
</table>
<script type="text/javascript">
        var btn=document.getElementById('btn');
        var s=document.getElementById('text1').innerHTML;
        var text2=document.getElementById('text2');
        btn.onclick=function (){
        
          
            
            text2.value=s;
        }
</script>
    
<style>
table,tr,th,td{border:1px solid #333;border-collapse:collapse;}
</style>

用正则表达式提取a标签,并删除a标签内的其他标签,
你题目的解答代码如下:

<textarea id="text1" rows="10" cols="50">
<!--文本域输入的内容-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>测试网页</title>
</head>
<body>
<ul>
<li>
    <a class="js-task-item-link" href="https://www.aaa.com/111">
          <div class="title">
            <h5 class="title-text">我是文本内容1</h5>
          </div>
     </a>
</li>
<li>
    <a class="js-task-item-link" href="https://www.bbb.com/222">
          <div class="title">
            <h5 class="title-text">我是文本内容2</h5>
          </div>
     </a>
</li>
<li>
    <a class="js-task-item-link" href="https://www.ccc.com/333">
          <div class="title">
            <h5 class="title-text">我是文本内容3</h5>
          </div>
     </a>
</li>
<li>
    <a class="js-task-item-link" href="https://www.ddd.com/444">
          <div class="title">
            <h5 class="title-text">我是文本内容4</h5>
          </div>
     </a>
</li>
</ul>
</body>
</html>
<!--文本域输入的内容-->
</textarea>
<br><br>
<input type="button" id="btn" value="开始处理">
<br><br>
<textarea id="text2" rows="10" cols="50">
</textarea>
<br><br>

<table id="tab">
<tr><th>文本内容</th><th>链接</th></tr>
</table>
<script type="text/javascript">
        var btn=document.getElementById('btn');
        var text2=document.getElementById('text2');
        btn.onclick=function (){
            var s=document.getElementById('text1').value;
            var arr = [];
            var str = "";
            var str2 = "<tr><th>文本内容</th><th>链接</th></tr>";
            s.replace(/<a [\s\S]*?href="([\s\S]*?)"[\s\S]*?>([\s\S]*?)<\/a>/g,function (s,a,b) {
                b = b.replace(/<\/?\w+[\s\S]*?>/g,"").replace(/^\s+|\s+$/g,"");
                str += b + " " + a + "\n";
                str2 += "<tr><td>"+b+"</td><td><a href='"+a+"'>"+a+"</a></td></tr>";
                
            });
            
            text2.value=str;
            document.querySelector("#tab tbody").innerHTML=str2;
        }
</script>
    
<style>
table,tr,th,td{border:1px solid #333;border-collapse:collapse;}
</style>


先把a标签替换成指定字符,然后正则替掉所有html标签,然后在把指定字符替换a标签


tempStr = tempStr.replace(/(<([^>]+)>)/ig,"").replace(/[\r\n]/g,""); //去除所有html标签<></>.去除所有换行符。
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632