正则修炼大法

    技术2022-05-11  123

    <html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>正则修炼大法</title><script language="JavaScript"><!--var regInput=null;var strInput=null;var repAs=null;var outInput=null;var fIgnore=null;var fGlobal=null;function init(){ regInput=document.getElementById("txtReg"); strInput=document.getElementById("txtTestStr"); repAs=document.getElementById("txtReplaceAs"); outInput=document.getElementById("txtOut"); fIgnore=document.getElementById("chkIgnoreCase"); fGlobal=document.getElementById("chkGlobal");}function clearTxt(){ regInput.value=""; strInput.value="";}

    function beginTest(){  var reg= makeReg(); var testResult = reg.test(strInput.value); document.getElementById("testVal").innerText=testResult; for(var i=1;i<10;i++)  document.getElementById("td"+i).innerText=eval("RegExp.$"+i)+" "; }

    function beginMatch(){ var reg= makeReg(); var testResult = strInput.value.match(reg); document.getElementById("testVal").innerText=testResult.join(","); for(var i=1;i<10;i++)  document.getElementById("td"+i).innerText=eval("RegExp.$"+i)+" ";}

    function beginReplace(){ var reg= makeReg(); var testResult = strInput.value.replace(reg,repAs.value); outInput.value=testResult; for(var i=1;i<10;i++)  document.getElementById("td"+i).innerText=eval("RegExp.$"+i)+" ";}

    function makeReg(){  var strFlag=""; if(fGlobal.checked) strFlag+="g"; if(fIgnore.checked) strFlag+="i"; var reg=new RegExp(regInput.value,strFlag) return reg;}

    //--></script><style type="text/css">td{font-size:12px}</style></head>

    <body οnlοad="init()"><table width="800" border="1" cellspacing="0" cellpadding="0" align="center">  <tr height="60">    <td align="right">输入测试字符串:</td>    <td><textarea id="txtTestStr" style="width:100%; height:100%; background-color:#FFFFEF ">; id:123  ; name :  meixuexiang    ;birthday: 19810625 ;sex:boy;</textarea></td>  </tr>  <tr height="30">    <td width="20%" align="right">输入正则规则字符串:</td>    <td>  <input type="text" value="(^|;|/s)name/s*:/s*([^;]*)(/s|;|$)" id="txtReg" style="width:85%; background-color:#FFFFEF ">  <input type="checkbox" id="chkGlobal">g   <input type="checkbox" id="chkIgnoreCase">i  </td>  </tr>  <tr height="60">    <td align="right">替换为字符串:</td>    <td><textarea id="txtReplaceAs" style="width:100%; height:100%; background-color:#FFFFEF "></textarea></td>  </tr>  <tr height="60">    <td align="right">输出字符串:</td>    <td><textarea id="txtOut" style="width:100%; height:100%; background-color:#FFFFEF "></textarea></td>  </tr>  <tr height="40">    <td colspan="2" align="center">  <input type="button" id="btnClear" οnclick="clearTxt()" value="Clear">             <input type="button" id="btnRun" οnclick="beginTest()" value="test()">             <input type="button" id="btnRun" οnclick="beginMatch()" value="match()">             <input type="button" id="btnRun" οnclick="beginReplace()" value="replace()"> </td>  </tr></table><h3 align="center">运行结果</h3><table width="800" border="1" cellspacing="0" cellpadding="0" align="center">  <tr height="30" bgcolor="#CCCCCC">    <td width="25%" align="center">变量名</td>    <td width="25%" align="center">值</td>    <td width="25%" align="center">变量名</td>    <td width="25%" align="center">值</td>  </tr>  <tr height="30">    <td align="right">reg.test()</td>    <td align="right" id="testVal"> </td>    <td align="right">$1</td>    <td align="right" id="td1"> </td>  </tr>  <tr height="30">    <td align="right">$2</td>    <td align="right" id="td2"> </td>    <td align="right">$3</td>    <td align="right" id="td3"> </td>  </tr>  <tr height="30">    <td align="right">$4</td>    <td align="right" id="td4"> </td>    <td align="right">$5</td>    <td align="right" id="td5"> </td>  </tr>  <tr height="30">    <td align="right">$6</td>    <td align="right" id="td6"> </td>    <td align="right">$7</td>    <td align="right" id="td7"> </td>  </tr>  <tr height="30">    <td align="right">$8</td>    <td align="right" id="td8"> </td>    <td align="right">$9</td>    <td align="right" id="td9"> </td>  </tr></table>

    </body></html>


    最新回复(0)