散分&&求助:正则表达式匹配后浏览器响应时间过长或者直接死了

duwa789 2010-03-08 11:24:24

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>

<script language="javascript">
function foo() {
var textTX = document.getElementById("textTX").value;
var re = /^([1-9]?[\d]*([\-]?[1-9]?[\d]*[;]?)?)*$/;
alert(re.test(textTX));
}
</script>

</head>
<body>
<form id="form1" runat="server">
<div>
<input type="text" id="textTX" style=" width: 300px;"/>
<input type="button" value="Click me" onclick="foo();"/>
</div>
</form>
</body>
</html>



原意是匹配如35;12-34;1;432-123;3;4;5;样子的字符串,上面的表达式似乎可以了,但如果输入一串稍长的,但带字母的串时浏览器就罢工了,响应时间太长,或者干脆等我强行结束进程,这是为啥……
...全文
164 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhousq00 2010-03-09
  • 打赏
  • 举报
回复
我赞成5楼的说法,*的匹配导致了问题的出现!
justwalking 2010-03-09
  • 打赏
  • 举报
回复
还没遇到这种情况,帮顶起。。。。。。。。。。。。。。。。。。。。。。。。。。。
s_liangchao1s 2010-03-08
  • 打赏
  • 举报
回复

/^(\d+([-]\d+)?;?)+$/
牛仔十三 2010-03-08
  • 打赏
  • 举报
回复
帮忙顶一个~~~~~~~~~~~~~~~~
sundotLei 2010-03-08
  • 打赏
  • 举报
回复
我觉得问题出在最后一个*批配的时候,倒致了多次的扫描
改成这样好像会好些,

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>

<script language="javascript">
function foo() {
var textTX = document.getElementById("textTX").value;
var re = /^([1-9]*)([\-]?)([1-9]+)[;]?[1-9;\-]+$/;
alert(re.test(textTX));
}
</script>

</head>
<body>
<form id="form1" runat="server">
<div>
<input type="text" id="textTX" style=" width: 300px;"/>
<input type="button" value="Click me" onclick="foo();"/>
</div>
</form>
</body>
</html>
shan1119 2010-03-08
  • 打赏
  • 举报
回复
have a try

var re = /^(\d+([-]\d+)?;)+$/;
shan1119 2010-03-08
  • 打赏
  • 举报
回复
var re = /^([1-9]?[\d]*([\-]?[1-9]?[\d]*[;]?)?)*$/;
問号qiantao過多、修改一下正則
duwa789 2010-03-08
  • 打赏
  • 举报
回复
能不能再解释一下?

假如字符串就是那么长,那只能分割了处理?
浴火_凤凰 2010-03-08
  • 打赏
  • 举报
回复
测试字符串不要过长!!!!再者正则表达式中尽量使用精确格式不要使用模糊的语义,如尽量减少*的使用
friendly_ 2010-03-08
  • 打赏
  • 举报
回复
/^(?:(?:\d+|\d+\-\d+);?)+$/
duwa789 2010-03-08
  • 打赏
  • 举报
回复
顶起来散……

87,910

社区成员

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

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