这么写正则表达式不知道哪里错了?

xfxf521 2006-11-11 05:51:48
我的要求是输入只能出现数字或者"-"字符。但是这样写只要第一位有数字或者"-"就是正确的。
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script type="text/javascript">
function check()
{
var reg=/^\d|-{13}/;
if(reg.test(frm.txt.value))
{
alert("正确");
return true;
}
alert("错误");
return false;
}
function phoneCheck(phone)
{
var str=phone;
var reg=/^\d|-/;
alert(phone);
return reg.test(str);
}

</script>
</head>

<body>
<form name="frm" onsubmit="return check()">
<input type="text" name="txt" />
<input type="submit" />
</form>
</body>
</html>
...全文
187 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
muxrwc 2006-11-12
  • 打赏
  • 举报
回复
<script type="text/javascript">
function checkStrng(strng) {
alert(pat.test(strng));
}
var strng1 = "1111111111111";
var strng2 = "-------------";
var strng3 = "1-1-1-1-1-1-1";
var pat = /[\d-]{13}/;
checkStrng(strng1);
checkStrng(strng2);
checkStrng(strng3);
</script>
muxrwc 2006-11-12
  • 打赏
  • 举报
回复
顺便修正下我写的(刚没仔细看LZ大人的意思,不好意思)。。
var pat = /[\d-]{13}/;
改成
var pat = /^[\d-]{13}$/;
muxrwc 2006-11-12
  • 打赏
  • 举报
回复
寒。。我们伟大的LZ真是执着呢。
/^\d|-{13}/
这个的写法就相当于:

开头是数字 或者 里面包括13个- 满足一个就可以。

所以就错了。。
xfxf521 2006-11-12
  • 打赏
  • 举报
回复
大家讲述了那么多的方法,但是能指出我错在哪了的吗?我不需要正确答案,而是想知道为什么错了
梅雪香 2006-11-11
  • 打赏
  • 举报
回复
var reg=/^(\d{13}|\-{13})$/;
Apq001 2006-11-11
  • 打赏
  • 举报
回复

/// <fMin>最少小数位数</fMin>
/// <fMax>最多小数位数</fMax>
/// <AllowInt>整数是否通过检验</AllowInt>
function IsNumber( str, fMin, fMax, AllowInt ){
var strMin = fMin > 0 ? fMin.toString() : "0";
var strMax = fMax > 0 ? fMax.toString() : "";
var strAllowInt = AllowInt ? "?" : "";
var reg = new RegExp( "^\\-?([1-9]\\d*|0)(\\.\\d{" + strMin + "," + strMax + "})" + strAllowInt + "$" );
return reg.test( str );
};
懒牛科技 2006-11-11
  • 打赏
  • 举报
回复
你好,我虽然不会用正则,但是可以用另一种方法解决!!就是event.keyCode
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
function pull()
{
var e=event.keyCode;
if(!(e>=48&&e<=57||e==189))
{

alert("输入内容只能包括数字或者'-'");

document.all.txt.value="";
}
}
//-->
</SCRIPT>
<BODY>
<form name="frm" onsubmit="return check()">
<input type="text" name="txt"onkeyup="pull()" />
<input type="submit" />
</form>
</body>
</BODY>
</HTML>

87,910

社区成员

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

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