请教让文本框只允许输入数字和英文逗号的正则表达式

btxp163 2011-09-30 09:12:34
有一个需求,规定用户输入的文本格式是 16,59,63
多个数字的时候,用英文逗号隔开,单个就不用加逗号,

这个正则怎么写
...全文
809 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
mirror_h 2011-12-20
  • 打赏
  • 举报
回复
啊啊啊啊啊啊啊啊啊啊啊
knightzhuwei 2011-09-30
  • 打赏
  • 举报
回复
/^(\d{2,},)*\d+$/
峭沙 2011-09-30
  • 打赏
  • 举报
回复
哈哈,我可不是什么大牛哦
上面的代码不支持IE,放个支持IE的吧
<html>
<head>
</head>
<body>
<input id="textbox" type="text" value="" />
<input id="btn" type="button" value="button" />
<div id="div"></div>
<script>
var div = document.getElementById('div');
document.getElementById('textbox').onkeypress = function(event){
//var which = event.keyCode ? event.keyCode : event.which;
var e = event || window.event;
var which = e.which || e.keyCode;
if(!(which >= 48 && which <= 57 || which === 44)){
alert('输出错误');
if (e.preventDefault) {
e.preventDefault();
} else {
e.returnValue = false;
}
}
}

</script>
</body>
</html>
btxp163 2011-09-30
  • 打赏
  • 举报
回复
嗯,糗大了,

上面这位大牛的方法才是最合适的

万分感谢,分送上
峭沙 2011-09-30
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 btxp163 的回复:]

五楼的我有一点写错了,纠正下


我要的效果就是 只要他输入的文本框中有除英文逗号之外的标点、中文、英文这些字符,统统都报错,

只允许输入数字和英文逗号
[/Quote]你要的效果不是用正则实现的。。
<html>
<head>
</head>
<body>
<input id="textbox" type="text" value="" />
<input id="btn" type="button" value="button" />
<script>
var str = 'abcd';
document.getElementById('textbox').onkeypress = function(event){
if(!(event.which >= 48 && event.which <= 57 || event.which === 44)){
alert('输出错误');
event.preventDefault();
}
}
</script>
</body>
</html>
峭沙 2011-09-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 btxp163 的回复:]

引用 4 楼 axiheyhey 的回复:

HTML code
<html>
<head>
</head>
<body>
<input id="textbox" type="text" value="" />
<input id="btn" type="button" value="button" />
<script>
var input = document.getEl……
[/Quote]亲,你没看懂吧。。是你不要的替换成空字符串。。
btxp163 2011-09-30
  • 打赏
  • 举报
回复
五楼的我有一点写错了,纠正下


我要的效果就是 只要他输入的文本框中有除英文逗号之外的标点、中文、英文这些字符,统统都报错,

只允许输入数字和英文逗号
knightzhuwei 2011-09-30
  • 打赏
  • 举报
回复
var reg=/^(\d{2,},)*\d+$'/;
btxp163 2011-09-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 axiheyhey 的回复:]

HTML code
<html>
<head>
</head>
<body>
<input id="textbox" type="text" value="" />
<input id="btn" type="button" value="button" />
<script>
var input = document.getElementById('t……
[/Quote]
我要的,你都把他替换成空字符串了,这岂不是更糟
btxp163 2011-09-30
  • 打赏
  • 举报
回复
上面两位的试过了,reg.test一直返回是false
 var reg=new RegExp('^(\d{2,},)*\d+$');
if(GetCPID("txtname").val().trim()=='')
{
jquery("#spanname").text(GetString('NameNull'));
GetCPID("txtname").focus();
return false;
}
else if(!reg.test(GetCPID("txtdesc").val().trim()))
{
jquery("#span1").text(GetString('valueiserror'));
return false;
}


我原来自己写的一个是"[0-9][,]" 这个有一方面判断不了,就是如果文本框里(26,693,)大致就是那字符串中有格式正确的,它都返回是true,


我要的效果就是 只要他输入的文本框中有除英文逗号之外的标点、中文、英文这些字符,统统都报错,

只允许输入数字和英文标点

望大牛赐教
峭沙 2011-09-30
  • 打赏
  • 举报
回复
<html>
<head>
</head>
<body>
<input id="textbox" type="text" value="" />
<input id="btn" type="button" value="button" />
<script>
var input = document.getElementById('textbox');
document.getElementById('btn').onclick = function(event){
input.value = input.value.replace(/[^\d,]/g, '');
}
</script>
</body>
</html>
风一样的大叔 2011-09-30
  • 打赏
  • 举报
回复
楼上的都是高手
Mr-Jee 2011-09-30
  • 打赏
  • 举报
回复
/^(\d+,)*\d+$/

87,990

社区成员

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

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