正则表达式验证数字的位数的问题?

usun82 2010-11-06 11:36:33
用var Exp = /^[1-9]\d{9}$/;可以验证文本框里面输入的是不是10位数字,
为什么我改成var Exp = /^[1-9]\d{19}$/;不可以验证文本框中输入的是20位数字呢?
谢谢!
...全文
1168 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
兔子-顾问 2010-11-08
  • 打赏
  • 举报
回复
^(?!0\d)\d{20}$
usun82 2010-11-08
  • 打赏
  • 举报
回复
明白了,我测试的时候输入的第一个数是0,所以通不过。把var Exp = /^[1-9]\d{19}$/;
改成var Exp = /^[0-9]\d{19}$/;
就OK了,多谢各位啊!
usun82 2010-11-08
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 lxcnn 的回复:]
代码验证没有问题,你可以把下面的代码存个html试下
排查下是否有其它代码限制

其实这里的判空没有必要,正则可以同时验证是否为空的
只是在正则验证控件中不能判空,在js代码中是可以的


HTML code
<input type="text" id="txtBeginNo" onblur="Query();"><br />
<script type="text/javasc……
[/Quote]
郁闷啊,我把这个保存了,测试也没有通过啊。我明明输入了20个数字,但当文本框失去焦点的时候,它还是提示我“请输入20个数字”。我要的是如果我输入的是20个数字它就别提示了,如果输入的不等于20个它才提示。
兔子-顾问 2010-11-06
  • 打赏
  • 举报
回复
楼主是不是测试的空字符串?那不是正则能验证的。
-过客- 2010-11-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 usun82 的回复:]
还有没有别的写法了,我试了确实不行,也没有别的地方限制了
[/Quote]

贴你的代码
usun82 2010-11-06
  • 打赏
  • 举报
回复
还有没有别的写法了,我试了确实不行,也没有别的地方限制了
xrongzhen 2010-11-06
  • 打赏
  • 举报
回复
可以 是不是别的地方修改了
-过客- 2010-11-06
  • 打赏
  • 举报
回复
可以的,看下你的代码里是否做了其它限制
java447060786 2010-11-06
  • 打赏
  • 举报
回复
应该可以吧
-过客- 2010-11-06
  • 打赏
  • 举报
回复
代码验证没有问题,你可以把下面的代码存个html试下
排查下是否有其它代码限制

其实这里的判空没有必要,正则可以同时验证是否为空的
只是在正则验证控件中不能判空,在js代码中是可以的

<input type="text" id="txtBeginNo" onblur="Query();"><br /> 
<script type="text/javascript">
function Query() {
var Exp = /^[1-9]\d{19}$/;
if (document.getElementById("txtBeginNo").value != '') {
if (!Exp.test(document.getElementById("txtBeginNo").value)) {
alert("请输入20位数字");
return false;
}
}
}
</script>
usun82 2010-11-06
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lxcnn 的回复:]
引用 4 楼 usun82 的回复:
还有没有别的写法了,我试了确实不行,也没有别的地方限制了


贴你的代码
[/Quote]


function Query() {
var Exp = /^[1-9]\d{19}$/;
if (document.getElementById("txtBeginNo").value != '') {
if (!Exp.test(document.getElementById("txtBeginNo").value)) {
alert("请输入20位数字");
return false;
}
}
}

我没有验证空字符串,是验证是否为20位数字。
整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$ 只能输入数字:"^[0-9]*$"。 只能输入n位的数字:"^\d{n}$"。 只能输入至少n位的数字:"^\d{n,}$"。 只能输入m~n位的数字:。"^\d{m,n}$" 只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。 只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。 只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。 只能输入非零的正整数:"^\+?[1-9][0-9]*$"。 只能输入非零的负整数:"^\-[1-9][]0-9"*$。 只能输入长度为3的字符:"^.{3}$"。 只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。 只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。 只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。 只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。 只能输入由数字、26个英文字母或者下划线组成的字符串:"^\w+$"。 验证用户密码:"^[a-zA-Z]\w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。 验证是否含有^%&',;=?$\"等字符:"[^%&',;=?$\x22]+"。 只能输入汉字:"^[\u4e00-\u9fa5]{0,}$" 验证Email地址:"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"。 验证InternetURL:"^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$"。 验证电话号码:"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$"正确格式为:"XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。 验证身份证号(15位或18位数字):"^\d{15}|\d{18}$"。 验证一年的12个月:"^(0?[1-9]|1[0-2])$"正确格式为:"01"~"09"和"1"~"12"。 验证一个月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正确格式为;"01"~"09"和"1"~"31"。 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 匹配双字节字符(包括汉字在内):[^\x00-\xff]

62,071

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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