<!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;样子的字符串,上面的表达式似乎可以了,但如果输入一串稍长的,但带字母的串时浏览器就罢工了,响应时间太长,或者干脆等我强行结束进程,这是为啥……
問号qiantao過多、修改一下正則
改成这样好像会好些,<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>