首页 > 编程 > Regex > 正文

js:正则处理超文本流

2020-03-16 21:20:56
字体:
来源:转载
供稿:网友
  1. <textarea id=html_string style="width=100%" rows=8>  
  2.  
  3. <input  
  4.  
  5. type='text' value = 's>om  
  6.  
  7. " ething' name=names asdfasdf=asdf>  
  8.  
  9. </input>><input value=a>name=aa><input name=bb value=bb>  
  10.  
  11. <input name=cc value=cc>  
  12.  
  13. </textarea> 
  14.  
  15.   
  16.  
  17.  
  18.  
  19. <script>  
  20.  
  21. var re = new Array()  
  22.  
  23. re[re.length] = Array("单标记   ", /<(/w+)[^"']*?((["'])?[^/3]*?/3[^"']*?)+>/ig)  
  24.  
  25. re[re.length] = Array("属性(带引号)", //w+/s*=/s*(["'])[^/1]*?/1/ig)  
  26.  
  27. re[re.length] = Array("属性(没引号)", //w+/s*=/s*/w+/gi)  
  28.  
  29. //alert(re.exec(ss))  
  30.  
  31.  
  32.  
  33. for (var i=0; i<re.length; i++)  
  34.  
  35. {  
  36.  
  37. document.write("<input type=radio name=re value="+i+">"+re[i][0]+" <input id=reValue size=100 type=text> ")  
  38.  
  39. document.write("<button onclick='re["+i+"][1]=document.all.reValue["+i+"].value'>保存</button>")  
  40.  
  41. document.write("<button onclick='document.all.reValue["+i+"].value=re["+i+"][1]'>恢复</button> 
  42. ")  
  43.  
  44. document.all.reValue.length ? document.all.reValue[document.all.reValue.length-1].value = re[i][1] : document.all.reValue.value = re[i][1]  
  45.  
  46. }  
  47.  
  48.  
  49.  
  50. document.all.re[0].checked = true  
  51.  
  52.  
  53.  
  54. function matchTest()  
  55.  
  56. {  
  57.  
  58. var ss = html_string.innerText  
  59.  
  60. var re  
  61.  
  62. for (var i=0; i<document.all.re.length; i++) if(document.all.re[i].checked) break  
  63.  
  64. re = eval(document.all.reValue[i].value)  
  65.  
  66. rx = re.exec(ss)  
  67.  
  68. testArea.innerHTML = ""  
  69.  
  70. for (var i=1; i<9; i++) testArea.innerHTML += " RegExp$"+i+"="+eval("RegExp.$"+i)+" "  
  71.  
  72. rv = ss.match(re)  
  73.  
  74. for (var i=0; rv && i<rv.length; i++)  
  75.  
  76. {  
  77.  
  78. testArea.innerHTML += "<xmp style='background:#EEEEEE; padding:5px'>"+rv[i]+"</xmp>"  
  79.  
  80. }  
  81.  
  82. }  
  83.  
  84. </script>  
  85.  
  86.  
  87.  
  88.  
  89.   
  90.  
  91.  
  92.  
  93. <button onclick=matchTest()>测试</button>  
  94.  
  95.  
  96.  
  97. <div id=testArea></div>  
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表