练习正则的,可惜我正则太差,期待高手完善 有没有高人帮完善一下啊,能不能给加上match和replace的功能呢?有没有什么bug呢? 唉,大侠们都哪里去了,还是不愿一顾这点小事儿啊我觉得正则这个东西非常有用,而且大部分的js,VBS初学者都比较难迅速掌握,一个好的工具会起很大作用的. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <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;var atReplace = null;var fso = 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"); atReplace=document.getElementById("chkAutoReplace");}//清空文本内容function clearTxt(){ regInput.value=""; strInput.value=""; repAs.value=""; outInput.value=""; fIgnore.checked=false; fGlobal.checked=false;}//正则测试function beginTest(){ var reg= makeReg(); var testResult = reg.test(strInput.value); document.getElementById("testVal").innerHTML=testResult; for(var i=1;i<10;i++){ var reg$i = eval("RegExp.$"+i); if(reg$i == " ") reg$i = "空格"; var tmpStr = (reg$i==""?" ":reg$i); document.getElementById("td"+i).innerHTML=tmpStr; }}//进行匹配function beginMatch(){ var reg= makeReg(); var testResult = strInput.value.match(reg); var outTd = document.getElementById("testVal"); if(!testResult){ outTd.innerHTML = "没有匹配到任何内容!" return; } outTd.innerHTML=testResult.join(","); for(var i=1;i<10;i++){ var reg$i = eval("RegExp.$"+i); if(reg$i == " ") reg$i = "空格"; var tmpStr = (reg$i==""?" ":reg$i); document.getElementById("td"+i).innerHTML=tmpStr; }}//进行替换function beginReplace(){ var reg= makeReg(); var testResult = strInput.value.replace(reg,repAs.value); outInput.value=testResult; for(var i=1;i<10;i++){ var reg$i = eval("RegExp.$"+i); if(reg$i == " ") reg$i = "空格"; var tmpStr = (reg$i==""?" ":reg$i); document.getElementById("td"+i).innerHTML=tmpStr; } if(document.getElementById("chkAutoCopy").checked) document.getElementById("btnCpyResult").click();}//根据字符串生成正则表达式function makeReg(){ var strFlag=""; if(fGlobal.checked) strFlag+="g"; if(fIgnore.checked) strFlag+="i"; var reg=new RegExp(regInput.value,strFlag) return reg;}//设置是否进行自动替换function startAutoReplace(src){ if(regInput.value=="") src.checked = false;}//复制替换结果function copyResult(){ outInput.select(); window.clipboardData.setData("text",outInput.value);}//进行自动替换function AutoReplace(){ if(atReplace.checked) document.getElementById('btnReplace').click()}//打开一个文件function openFileAsInput(src){ fso = new ActiveXObject("Scripting.FileSystemObject"); var val = src.value; var file = fso.GetFile(val); var ts = fso.OpenTextFile(val, 1); strInput.value= (file.Size>0?ts.ReadAll():""); ts.close(); AutoReplace(); var wrBtn = document.getElementById('btnToFile'); wrBtn.disabled = false; if(document.getElementById('chkAutoWrite').checked) wrBtn.click()}//写入文件function writeToFile(){ fso = new ActiveXObject("Scripting.FileSystemObject"); var val = document.getElementById('txtFile').value; //var file = fso.GetFile(val); var ts = fso.OpenTextFile(val, 2); ts.write(outInput.value); ts.close(); window.status = val + " 替换结果保存成功!"}//--></script><style type="text/css">td{font-size:12px}</style></head><body onload="init()"><table width="800" border="1" cellspacing="0" cellpadding="0" align="center"> <tr height="100"> <td align="right">输入测试字符串:<br> <input type="file" id="txtFile" onchange="openFileAsInput(this)" style="display:none"> <input type="button" id="btnFromFile" onclick="document.getElementById('txtFile').click()" value="打开文件"> </td> <td><textarea id="txtTestStr" onpaste="AutoReplace()" style="width:100%; height:100%; background-color:#FFFFEF ">f:\test\src\app\a.hf:\test\src\app\b.hf:\test\src\app\c.cf:\test\src\app\d.hf:\test\src\app\e.hf:\test\src\app\f.hf:\test\src\app\g.h</textarea></td> </tr> <tr height="30"> <td width="20%" align="right">输入正则规则字符串:</td> <td> <input type="text" value=".+\\([^\\]+\r\n)" id="txtReg" style="width:85%; background-color:#FFFFEF "> <input type="checkbox" id="chkGlobal" checked="true">g <input type="checkbox" id="chkIgnoreCase">i </td> </tr> <tr height="40"> <td align="right">替换为字符串:</td> <td><textarea id="txtReplaceAs" style="width:100%; height:100%; background-color:#FFFFEF ">$1</textarea></td> </tr> <tr height="100"> <td align="right">输出字符串:<br> <input type="button" id="btnToFile" onclick="writeToFile()" value="写入文件" disabled="true"> </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" onclick="clearTxt()" value="Clear"style="width:100"> <input type="button" id="btnTest" onclick="beginTest()" value="test()"style="width:100"> <input type="button" id="btnMatch" onclick="beginMatch()" value="match()"style="width:100"> <input type="button" id="btnReplace" onclick="beginReplace()" value="replace()"style="width:100"> <input type="button" id="btnCpyResult" onclick="copyResult()" value="复制替换结果"style="width:100"> <input type="checkbox" id="chkAutoReplace" onclick="startAutoReplace(this)">自动替换 <input type="checkbox" id="chkAutoCopy">自动复制 <input type="checkbox" id="chkAutoWrite">自动写入 </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> <tr height="20"> <td align="right" colspan="4"><a style="color:blue; cursor:hand"><b>Code by Meixx(梅雪香)</b></a></td> </tr> <tr height="20"> <td align="right" colspan="4"><a href="mailto:[email protected]">报告BUG</a></td> </tr></table></body></html> js参数的理解. firefox 下鼠標左右按鍵的問題 有点奇妙,来看看getElemntsByTagName问题, 100元 javascript程序修改 javascript在加载全部完成后执行,如何做呢? 【求教高手】请教一个问题。请大家帮帮我! javascript动态函数创建,究竟哪里错了? 请大家看一下这个编码问题,谢谢了 没有搞定的问题,散分求助,在线等 如何使当鼠标移动到一个超链接上,表格背景色变兰,鼠标离开时变表格背景为白色? 为何左右连续循环滚动不起来?急,急,急! Javascript If语句中如何控制Asp编的数据库函数(急)
<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;
var atReplace = null;
var fso = 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");
atReplace=document.getElementById("chkAutoReplace");
}
//清空文本内容
function clearTxt(){
regInput.value="";
strInput.value="";
repAs.value="";
outInput.value="";
fIgnore.checked=false;
fGlobal.checked=false;
}
//正则测试
function beginTest(){
var reg= makeReg();
var testResult = reg.test(strInput.value);
document.getElementById("testVal").innerHTML=testResult;
for(var i=1;i<10;i++){
var reg$i = eval("RegExp.$"+i);
if(reg$i == " ") reg$i = "空格";
var tmpStr = (reg$i==""?" ":reg$i);
document.getElementById("td"+i).innerHTML=tmpStr;
}
}
//进行匹配
function beginMatch(){
var reg= makeReg();
var testResult = strInput.value.match(reg);
var outTd = document.getElementById("testVal");
if(!testResult){
outTd.innerHTML = "没有匹配到任何内容!"
return;
}
outTd.innerHTML=testResult.join(",");
for(var i=1;i<10;i++){
var reg$i = eval("RegExp.$"+i);
if(reg$i == " ") reg$i = "空格";
var tmpStr = (reg$i==""?" ":reg$i);
document.getElementById("td"+i).innerHTML=tmpStr;
}
}
//进行替换
function beginReplace(){
var reg= makeReg();
var testResult = strInput.value.replace(reg,repAs.value);
outInput.value=testResult;
for(var i=1;i<10;i++){
var reg$i = eval("RegExp.$"+i);
if(reg$i == " ") reg$i = "空格";
var tmpStr = (reg$i==""?" ":reg$i);
document.getElementById("td"+i).innerHTML=tmpStr;
}
if(document.getElementById("chkAutoCopy").checked)
document.getElementById("btnCpyResult").click();
}
//根据字符串生成正则表达式
function makeReg(){
var strFlag="";
if(fGlobal.checked) strFlag+="g";
if(fIgnore.checked) strFlag+="i";
var reg=new RegExp(regInput.value,strFlag)
return reg;
}
//设置是否进行自动替换
function startAutoReplace(src){
if(regInput.value=="") src.checked = false;
}
//复制替换结果
function copyResult(){
outInput.select();
window.clipboardData.setData("text",outInput.value);
}
//进行自动替换
function AutoReplace(){
if(atReplace.checked)
document.getElementById('btnReplace').click()
}
//打开一个文件
function openFileAsInput(src){
fso = new ActiveXObject("Scripting.FileSystemObject");
var val = src.value;
var file = fso.GetFile(val);
var ts = fso.OpenTextFile(val, 1);
strInput.value= (file.Size>0?ts.ReadAll():"");
ts.close();
AutoReplace();
var wrBtn = document.getElementById('btnToFile');
wrBtn.disabled = false;
if(document.getElementById('chkAutoWrite').checked)
wrBtn.click()
}
//写入文件
function writeToFile(){
fso = new ActiveXObject("Scripting.FileSystemObject");
var val = document.getElementById('txtFile').value;
//var file = fso.GetFile(val);
var ts = fso.OpenTextFile(val, 2);
ts.write(outInput.value);
ts.close();
window.status = val + " 替换结果保存成功!"
}//-->
</script>
<style type="text/css">
td{font-size:12px}
</style>
</head><body onload="init()">
<table width="800" border="1" cellspacing="0" cellpadding="0" align="center">
<tr height="100">
<td align="right">输入测试字符串:<br>
<input type="file" id="txtFile" onchange="openFileAsInput(this)" style="display:none">
<input type="button" id="btnFromFile" onclick="document.getElementById('txtFile').click()" value="打开文件">
</td>
<td><textarea id="txtTestStr" onpaste="AutoReplace()" style="width:100%; height:100%; background-color:#FFFFEF ">f:\test\src\app\a.h
f:\test\src\app\b.h
f:\test\src\app\c.c
f:\test\src\app\d.h
f:\test\src\app\e.h
f:\test\src\app\f.h
f:\test\src\app\g.h
</textarea></td>
</tr>
<tr height="30">
<td width="20%" align="right">输入正则规则字符串:</td>
<td>
<input type="text" value=".+\\([^\\]+\r\n)" id="txtReg" style="width:85%; background-color:#FFFFEF ">
<input type="checkbox" id="chkGlobal" checked="true">g
<input type="checkbox" id="chkIgnoreCase">i
</td>
</tr>
<tr height="40">
<td align="right">替换为字符串:</td>
<td><textarea id="txtReplaceAs" style="width:100%; height:100%; background-color:#FFFFEF ">$1</textarea></td>
</tr>
<tr height="100">
<td align="right">输出字符串:<br>
<input type="button" id="btnToFile" onclick="writeToFile()" value="写入文件" disabled="true">
</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" onclick="clearTxt()" value="Clear"style="width:100">
<input type="button" id="btnTest" onclick="beginTest()" value="test()"style="width:100">
<input type="button" id="btnMatch" onclick="beginMatch()" value="match()"style="width:100">
<input type="button" id="btnReplace" onclick="beginReplace()" value="replace()"style="width:100">
<input type="button" id="btnCpyResult" onclick="copyResult()" value="复制替换结果"style="width:100">
<input type="checkbox" id="chkAutoReplace" onclick="startAutoReplace(this)">自动替换
<input type="checkbox" id="chkAutoCopy">自动复制
<input type="checkbox" id="chkAutoWrite">自动写入
</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>
<tr height="20">
<td align="right" colspan="4"><a style="color:blue; cursor:hand"><b>Code by Meixx(梅雪香)</b></a></td>
</tr>
<tr height="20">
<td align="right" colspan="4"><a href="mailto:[email protected]">报告BUG</a></td>
</tr>
</table></body>
</html>