我写得很简易,test检测基本通过,但是exec老感觉不对劲。
/aaa(a)/g.exec(aaaaaaa)==[null] 还是说这本来就是对的?
<html>
<head>
<title>正则测试</title>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<style type="text/css">textarea {overflow: auto;}</style>
<script type="text/javascript">
var reg=null;
function regexp_onchange(text){
if(!text) return true;
try{
reg=eval(text);
regText.innerHTML=reg.source;
}catch(e){
if(!/^\//.test(text))
regexp.value="/"+regexp.value;
if(!/\/[\w]*$/.test(text))
//regexp.value=regexp.value+"/";
regText.innerHTML="存在语法错误!";
return false;
}
if(orText.value){text_onchange(orText.value);}
return true;
}
function text_onchange(text){
if(reg==null) return;
test.innerHTML=regexp.value+".test("+text+")"+"=="+reg.test(text);
exec.innerHTML=regexp.value+".exec("+text+")"+"==["+reg.exec(text)+"]";
}
</script>
</head>
<body>
<div>
正则表达式: <span id="regText"></span><br/>
<textarea id="regexp" rows="5" cols="80" onkeyup="if(!regexp_onchange(this.value)){regexp_onchange(this.value)};"></textarea>
<br/>
待检测字符:<br/>
<textarea id="orText" rows="5" cols="80" onkeyup="text_onchange(this.value);"></textarea>
</div>
<div style="top: 10px;">
<span id="test"></span><br/><span id="exec"></span>
</div>
</body>
</html>
/aaa(a)/g.exec(aaaaaaa)==[null] 还是说这本来就是对的?
<html>
<head>
<title>正则测试</title>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<style type="text/css">textarea {overflow: auto;}</style>
<script type="text/javascript">
var reg=null;
function regexp_onchange(text){
if(!text) return true;
try{
reg=eval(text);
regText.innerHTML=reg.source;
}catch(e){
if(!/^\//.test(text))
regexp.value="/"+regexp.value;
if(!/\/[\w]*$/.test(text))
//regexp.value=regexp.value+"/";
regText.innerHTML="存在语法错误!";
return false;
}
if(orText.value){text_onchange(orText.value);}
return true;
}
function text_onchange(text){
if(reg==null) return;
test.innerHTML=regexp.value+".test("+text+")"+"=="+reg.test(text);
exec.innerHTML=regexp.value+".exec("+text+")"+"==["+reg.exec(text)+"]";
}
</script>
</head>
<body>
<div>
正则表达式: <span id="regText"></span><br/>
<textarea id="regexp" rows="5" cols="80" onkeyup="if(!regexp_onchange(this.value)){regexp_onchange(this.value)};"></textarea>
<br/>
待检测字符:<br/>
<textarea id="orText" rows="5" cols="80" onkeyup="text_onchange(this.value);"></textarea>
</div>
<div style="top: 10px;">
<span id="test"></span><br/><span id="exec"></span>
</div>
</body>
</html>
解决方案 »
- 高手求助,用js如何实现这样的功能?
- js图片放大,出现了一个小问题。。。
- 麻烦给个函数添加注释
- 如何在自己网站加入google,baidu搜索,并且有下拉提示功能
- 需要做个导出窗口
- 帮看看下面的代码,解决一个问题。
- <select>中以列表的形式显示数据,如果做像<img alt="">中提示信息将所选择的行的数据提示出来?
- 谁能帮我解决关于Text文本框的onChange()事件的问题?
- 请问下载的BBS的代码文件怎样放在自己的asp网站中,我载的是动网的BBS
- 怎样用javascript对word文档进行读写操作?高分请教,分数不够可以再加
- 一个小问题,求有经验的帮个忙,谢谢!
- 关于Jquery 扩展
我得到的结果。。/aaa(a)/g.exec(aaaaaaa)==[aaaa,a]
if(reg==null) return;
reg.lastIndex = 0;
test.innerHTML=regexp.value+".test("+text+")"+"=="+reg.test(text);
reg.lastIndex = 0;
exec.innerHTML=regexp.value+".exec("+text+")"+"==["+reg.exec(text)+"]";
}重置一下索引
exec.innerHTML = regexp.value + ".exec(" + text + ")" + "==[" + /aaa(a)/g.exec(text) + "]";
这样测了一下。。就没问题了。