我写了个js版的正则表达式检测工具,大家都进来看看靠谱不?

Left_you 2012-04-09 03:38:11
我写得很简易,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>
...全文
204 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Acesidonu 2012-04-09
  • 打赏
  • 举报
回复
reg匹配后每次索引都会变的。
三石-gary 2012-04-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

引用 5 楼 的回复:

求分析,求解释, 我自己是想不出来了。难道是evel函数的问题?

引用 4 楼 的回复:

引用 3 楼 的回复:

你是用这个工具匹配的还是自己在js里面调试的?

引用 2 楼 的回复:

引用 1 楼 的回复:

没有匹配就返回null了。。


我得到的结果。。/aaa(a)/g.exec(aaaaaaa)==[aa……
[/Quote]
初步断定和reg的值有关系
三石-gary 2012-04-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

求分析,求解释, 我自己是想不出来了。难道是evel函数的问题?

引用 4 楼 的回复:

引用 3 楼 的回复:

你是用这个工具匹配的还是自己在js里面调试的?

引用 2 楼 的回复:

引用 1 楼 的回复:

没有匹配就返回null了。。


我得到的结果。。/aaa(a)/g.exec(aaaaaaa)==[aaaa,a]

就简单的写的。……
[/Quote]
有可能是。。。
exec.innerHTML = regexp.value + ".exec(" + text + ")" + "==[" + /aaa(a)/g.exec(text) + "]";
这样测了一下。。就没问题了。
Acesidonu 2012-04-09
  • 打赏
  • 举报
回复
function text_onchange(text){
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)+"]";
}

重置一下索引
Left_you 2012-04-09
  • 打赏
  • 举报
回复
求分析,求解释, 我自己是想不出来了。难道是evel函数的问题?

[Quote=引用 4 楼 的回复:]

引用 3 楼 的回复:

你是用这个工具匹配的还是自己在js里面调试的?

引用 2 楼 的回复:

引用 1 楼 的回复:

没有匹配就返回null了。。


我得到的结果。。/aaa(a)/g.exec(aaaaaaa)==[aaaa,a]

就简单的写的。。用你的测就不对。。感觉很奇怪。。。
[/Quote]
三石-gary 2012-04-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

你是用这个工具匹配的还是自己在js里面调试的?

引用 2 楼 的回复:

引用 1 楼 的回复:

没有匹配就返回null了。。


我得到的结果。。/aaa(a)/g.exec(aaaaaaa)==[aaaa,a]
[/Quote]
就简单的写的。。用你的测就不对。。感觉很奇怪。。。
Left_you 2012-04-09
  • 打赏
  • 举报
回复
你是用这个工具匹配的还是自己在js里面调试的?

[Quote=引用 2 楼 的回复:]

引用 1 楼 的回复:

没有匹配就返回null了。。


我得到的结果。。/aaa(a)/g.exec(aaaaaaa)==[aaaa,a]
[/Quote]
三石-gary 2012-04-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

没有匹配就返回null了。。
[/Quote]

我得到的结果。。/aaa(a)/g.exec(aaaaaaa)==[aaaa,a]
三石-gary 2012-04-09
  • 打赏
  • 举报
回复
没有匹配就返回null了。。
内容概要:本文系统研究了基于粒子群PSO、灰狼GWO、鲸鱼WOA、哈里斯鹰HHO、蜣螂DBO、麻雀SSA六种智能优化算法的无人机三维路径规划方法,并通过Matlab实现代码仿真。研究构建了融合路径长度、飞行高度、能耗及安全性的多成本目标函数,建立适用于复杂三维环境的路径优化模型,重点对比分析各算法在收敛速度、全局寻优能力、路径平滑度与动态避障性能等方面的差异。文中详述了各类群智能算法的核心机制及其在路径编码、适应度计算、位置更新等环节的具体应用流程,并通过多组仿真实验验证了不同算法在复杂地形与障碍物环境下的规划有效性与鲁棒性,为无人机自主导航提供了系统的算法选型依据和技术实现方案。; 适合人群:具备一定Matlab编程基础,从事智能优化算法、无人机控制、路径规划等相关方向的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于复杂环境下无人机自主导航与路径规划的研究与开发;②系统比较主流群智能优化算法在三维空间搜索性能上的优劣,指导实际任务中的算法选择与改进;③为智能巡检、应急救援、城市物流等无人机应用场景提供可靠的路径决策支持。; 阅读建议:建议结合提供的Matlab代码进行仿真实践,重点关注不同算法的参数调优、适应度函数设计及可视化结果分析,深入理解算法行为特征与路径优化效果之间的内在联系。

87,990

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧