如何使用正则表达式在 JavaScript 中搜索分层图?

问题描述

我正在尝试在我的页面上插入类似这张照片

CLICK ME

内容,以表明:

  1. 初始节点的文本输入
  2. 最终节点的文本输入
  3. 用于搜索显示从初始节点到最终节点的路径的按钮。
  4. 我们的分层图。

我想在我绘制的层次图中使用DFS搜索方法和Regex方法进行搜索。还有另一个问题。因为我不知道如何创建图表(因为我是初学者:(),我使用的表格不起作用。请告诉我我应该如何编辑程序?

 <!DOCTYPE html>
    <html lang="en">
    <head>
        <Meta charset="UTF-8">
        <title>AiProject</title>
        
          
    </head>
    <body align=center>
        <script>
        function search(){
            var gstate  = [];
            var regex1  = /(https?:\/\/)?([www.digikala.com])/g
            var regex2  = /(https?:\/\/)?([www.digikala.com/mobile])/g
            var regex3  = /(https?:\/\/)?([www.digikala.com/mobile/xiaomi])/g
            var regex4  = /(https?:\/\/)?([www.digikala.com/mobile/xiaomi/mi9t])/g
            var regex5  = /(https?:\/\/)?([www.digikala.com/mobile/xiaomi/redmi8])/g
            var regex6  = /(https?:\/\/)?([www.digikala.com/mobile/huawei])/g
            var regex7  = /(https?:\/\/)?([www.digikala.com/mobile/huawei/p30pro])/g
            var regex8  = /(https?:\/\/)?([www.digikala.com/mobile/huawei/mate40pro])/g
            var regex9  = /(https?:\/\/)?([www.digikala.com/camera])/g
            var regex10 = /(https?:\/\/)?([www.digikala.com/camera/sony])/g
            var regex11 = /(https?:\/\/)?([www.digikala.com/camera/sony/a7rii])/g
            var regex12 = /(https?:\/\/)?([www.digikala.com/camera/sony/a1])/g
            var regex13 = /(https?:\/\/)?([www.digikala.com/camera/canon])/g
            var regex14 = /(https?:\/\/)?([www.digikala.com/camera/canon/50d])/g
            var regex15 = /(https?:\/\/)?([www.digikala.com/camera/canon/500d])/g
            
          
          var txt = document.getElementById("gaddress").value;
              while (1){
                  var res1  = regex1.test(txt);
                  var res2  = regex2.test(txt);
                  var res3  = regex3.test(txt);
                  var res4  = regex4.test(txt);
                  var res5  = regex5.test(txt);
                  var res6  = regex6.test(txt);
                  var res7  = regex7.test(txt);
                  var res8  = regex8.test(txt);
                  var res9  = regex9.test(txt);
                  var rES10 = regex10.test(txt);
                  var res11 = regex11.test(txt);
                  var res12 = regex12.test(txt);
                  var res13 = regex13.test(txt);
                  var res14 = regex14.test(txt);
                  var res15 = regex15.test(txt);
                  if (!res1){
                      break;}
                  else{
                document.getElementById("step1").innerHTML = "1";
                     }           
                  if (!res2){
                      break;}
                  else{
                document.getElementById("step1").innerHTML = "1";
                document.getElementById("step2").innerHTML = "2";  
                     }           
                  if (!res3){
                      break;}
                  else{
                 document.getElementById("step1").innerHTML = "1";
                 document.getElementById("step2").innerHTML = "2";  
                 document.getElementById("step3").innerHTML = "3";
                     }
                  if (!res4){
                      break;}
                  else{
                 document.getElementById("step1").innerHTML = "1";
                 document.getElementById("step2").innerHTML = "2";  
                 document.getElementById("step3").innerHTML = "3";
                 document.getElementById("step4").innerHTML = "4";
                     }
                  if (!res5){
                      break;}
                  else{
                 document.getElementById("step1").innerHTML = "1";
                 document.getElementById("step2").innerHTML = "2";  
                 document.getElementById("step3").innerHTML = "3";
                 document.getElementById("step4").innerHTML = "4";
                 document.getElementById("step5").innerHTML = "5";
                     }
                  if (!res6){
                      break;}
                  else{
                 document.getElementById("step1").innerHTML = "1";
                 document.getElementById("step2").innerHTML = "2";  
                 document.getElementById("step3").innerHTML = "3";
                 document.getElementById("step4").innerHTML = "4";
                 document.getElementById("step5").innerHTML = "5";     
                 document.getElementById("step6").innerHTML = "6";
                     }
                  if (!res7){
                      break;}
                  else{
                 document.getElementById("step1").innerHTML = "1";
                 document.getElementById("step2").innerHTML = "2";  
                 document.getElementById("step3").innerHTML = "3";
                 document.getElementById("step4").innerHTML = "4";
                 document.getElementById("step5").innerHTML = "5";     
                 document.getElementById("step6").innerHTML = "6";
                 document.getElementById("step7").innerHTML = "7";
                     }
                   if (!res8){
                      break;}
                  else{
                 document.getElementById("step1").innerHTML = "1";
                 document.getElementById("step2").innerHTML = "2";  
                 document.getElementById("step3").innerHTML = "3";
                 document.getElementById("step4").innerHTML = "4";
                 document.getElementById("step5").innerHTML = "5";     
                 document.getElementById("step6").innerHTML = "6";
                 document.getElementById("step7").innerHTML = "7";
                 document.getElementById("step8").innerHTML = "8";
                     }
                 if (!res9){
                      break;}
                  else{
                 document.getElementById("step1").innerHTML = "1";
                 document.getElementById("step2").innerHTML = "2";  
                 document.getElementById("step3").innerHTML = "3";
                 document.getElementById("step4").innerHTML = "4";
                 document.getElementById("step5").innerHTML = "5";     
                 document.getElementById("step6").innerHTML = "6";
                 document.getElementById("step7").innerHTML = "7";
                 document.getElementById("step8").innerHTML = "8";
                 document.getElementById("step9").innerHTML = "9";
                     }
                   if (!rES10){
                      break;}
                  else{
                 document.getElementById("step1").innerHTML = "1";
                 document.getElementById("step2").innerHTML = "2";  
                 document.getElementById("step3").innerHTML = "3";
                 document.getElementById("step4").innerHTML = "4";
                 document.getElementById("step5").innerHTML = "5";     
                 document.getElementById("step6").innerHTML = "6";
                 document.getElementById("step7").innerHTML = "7";
                 document.getElementById("step8").innerHTML = "8";
                 document.getElementById("step9").innerHTML = "9";    
                 document.getElementById("step10").innerHTML = "10";
                     }
                  if (!res11){
                      break;}
                  else{
                 document.getElementById("step1").innerHTML = "1";
                 document.getElementById("step2").innerHTML = "2";  
                 document.getElementById("step3").innerHTML = "3";
                 document.getElementById("step4").innerHTML = "4";
                 document.getElementById("step5").innerHTML = "5";     
                 document.getElementById("step6").innerHTML = "6";
                 document.getElementById("step7").innerHTML = "7";
                 document.getElementById("step8").innerHTML = "8";
                 document.getElementById("step9").innerHTML = "9";    
                 document.getElementById("step10").innerHTML = "10";
                 document.getElementById("step11").innerHTML = "11";
                     }
                  if (!res12){
                      break;}
                  else{
                 document.getElementById("step1").innerHTML = "1";
                 document.getElementById("step2").innerHTML = "2";  
                 document.getElementById("step3").innerHTML = "3";
                 document.getElementById("step4").innerHTML = "4";
                 document.getElementById("step5").innerHTML = "5";     
                 document.getElementById("step6").innerHTML = "6";
                 document.getElementById("step7").innerHTML = "7";
                 document.getElementById("step8").innerHTML = "8";
                 document.getElementById("step9").innerHTML = "9";    
                 document.getElementById("step10").innerHTML = "10";
                 document.getElementById("step11").innerHTML = "11";     
                 document.getElementById("step12").innerHTML = "12";
                     }
                if (!res13){
                      break;}
                  else{
                 document.getElementById("step1").innerHTML = "1";
                 document.getElementById("step2").innerHTML = "2";  
                 document.getElementById("step3").innerHTML = "3";
                 document.getElementById("step4").innerHTML = "4";
                 document.getElementById("step5").innerHTML = "5";     
                 document.getElementById("step6").innerHTML = "6";
                 document.getElementById("step7").innerHTML = "7";
                 document.getElementById("step8").innerHTML = "8";
                 document.getElementById("step9").innerHTML = "9";    
                 document.getElementById("step10").innerHTML = "10";
                 document.getElementById("step11").innerHTML = "11";     
                 document.getElementById("step12").innerHTML = "12";
                 document.getElementById("step13").innerHTML = "13";
                     }
                   if (!res14){
                      break;}
                  else{
                 document.getElementById("step1").innerHTML = "1";
                 document.getElementById("step2").innerHTML = "2";  
                 document.getElementById("step3").innerHTML = "3";
                 document.getElementById("step4").innerHTML = "4";
                 document.getElementById("step5").innerHTML = "5";     
                 document.getElementById("step6").innerHTML = "6";
                 document.getElementById("step7").innerHTML = "7";
                 document.getElementById("step8").innerHTML = "8";
                 document.getElementById("step9").innerHTML = "9";    
                 document.getElementById("step10").innerHTML = "10";
                 document.getElementById("step11").innerHTML = "11";     
                 document.getElementById("step12").innerHTML = "12";
                 document.getElementById("step13").innerHTML = "13";
                 document.getElementById("step14").innerHTML = "14";
                     }
                  if (!res14){
                      break;}
                  else{
                 document.getElementById("step1").innerHTML = "1";
                 document.getElementById("step2").innerHTML = "2";  
                 document.getElementById("step3").innerHTML = "3";
                 document.getElementById("step4").innerHTML = "4";
                 document.getElementById("step5").innerHTML = "5";     
                 document.getElementById("step6").innerHTML = "6";
                 document.getElementById("step7").innerHTML = "7";
                 document.getElementById("step8").innerHTML = "8";
                 document.getElementById("step9").innerHTML = "9";    
                 document.getElementById("step10").innerHTML = "10";
                 document.getElementById("step11").innerHTML = "11";     
                 document.getElementById("step12").innerHTML = "12";
                 document.getElementById("step13").innerHTML = "13";
                 document.getElementById("step14").innerHTML = "14";
                 document.getElementById("step15").innerHTML = "15";
                     }
                       }
        }
       </script>
       <textarea placeholder="Enter your initial address: " id="iaddress"></textarea>
       <textarea placeholder="Enter your goal address: " id="gaddress"></textarea>
       <button onclick="search()">Find path?</button>
       <form align=center>
           <table border=1 align=center>
               <tr>
                   <td width=100%>
                       digikala.com
                       <p id="step1"></p>
                   </td>
               </tr>
            </table>
            <table border=1 align=center> 
               <tr>
                   <td>
                       .../mobile
                       <p id="step2"></p>
                   </td>
                   <td width=400>    
                   </td>
                   <td>
                       .../camera
                       <p id="step9"></p>
                   </td>
               </tr>
               </table>  
               
               <table border=1  align=center>
               <tr>
                   <td>
                       .../mobile/xiaomi
                       <p id="step3"></p>
                   </td>
                   <td width=50>    
                   </td>
                   <td>
                       .../mobile/huawei
                       <p id="step6"></p>
                   </td>
                   <td width=300>    
                   </td>
                   <td>
                       .../camera/sony
                       <p id="step10"></p>
                   </td>
                   <td width=50>    
                   </td>
                   <td>
                       .../camera/canon
                       <p id="step13"></p>
                   </td>
               </tr>
               </table>
              
               <table border=1 align=center>
               <tr>
                   <td>
                       .../xiaomi/mi9t
                       <p id="step4"></p>
                   </td>
                   <td>
                       .../xiaomi/redmi8
                       <p id="step5"></p>
                   </td>
                   <td width=50>    
                   </td>
                   <td>
                       .../huawei/p30pro
                       <p id="step7"></p>
                   </td>
                   <td>
                       .../huawei/mate40
                       <p id="step8"></p>
                   </td>
                   <td width=200>    
                   </td>
                   <td>
                       .../sony/a7rII
                       <p id="step11"></p>
                   </td>
                   <td>
                       .../sony/a1
                       <p id="step12"></p>
                   </td>
                   <td width=50>    
                   </td>
                   <td>
                       .../canon/50d
                       <p id="step14"></p>
                   </td>
                   <td>
                       .../canon/500d
                       <p id="step15"></p>
                   </td>
               </tr>
               </table>
       </form>
      
    </body>
</html>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)