求一有关数字验证的正则

IToneY 2011-07-14 04:44:49
数值 正负不限,可以有小数点 其他的全部顾虑!
...全文
148 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
OPPPPOP 2011-07-15
  • 打赏
  • 举报
回复
var reg=/^(?:0|[-+]?[1-9][0-9]*(?:\.[0-9]+)?|[-+]?0\.[0-9]+)$/;
这个 加上-0.xx的啦
IToneY 2011-07-15
  • 打赏
  • 举报
回复
是么, 我测试怎么 输入0的时候就直接给我把0给干掉了呢 不给我输入0.3的机会么 应是!! 你测试能输入0么??
q107770540 2011-07-15
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 itoney 的回复:]

000去掉了 但是我要0.3呢 二者不可兼得?? 我搞个0.3 拷进去还是可以的 呵
[/Quote]
3楼的表达式: /^[+\-]?(?!0\d|[0.]+$)\d+(\.\d+)?$/

可以匹配到0.3的哇

不知你的测试数据是什么样子的?
IToneY 2011-07-15
  • 打赏
  • 举报
回复
错了 是>-1 <0 .......
IToneY 2011-07-15
  • 打赏
  • 举报
回复
antiwise 的回答很给力 但是 我搞个>0 <-1 的负浮点型小数就给不行了
wangcheng_714 2011-07-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 aspwebchh 的回复:]

JScript code

var n = "11111a";
if(!isNaN(n))
{
alert("是数字")
}
else
{
alert("不是")
}
[/Quote]
这个有点小问题 12. 也可以匹配到
IToneY 2011-07-15
  • 打赏
  • 举报
回复
antiwise 谢了啥 正则高手啊.....
OPPPPOP 2011-07-14
  • 打赏
  • 举报
回复

var reg=/^(?:0|[-+]?[1-9][0-9]*)(?:\.[0-9]+)?$/;

不匹配
00
01
1.
+0
-0
+0.0000
-0.0000
匹配
0
10
0.1
0.00
10.00
10.01
IToneY 2011-07-14
  • 打赏
  • 举报
回复
000去掉了 但是我要0.3呢 二者不可兼得?? 我搞个0.3 拷进去还是可以的 呵
q107770540 2011-07-14
  • 打赏
  • 举报
回复
3楼的不是已经实现对 000 的过滤了么
IToneY 2011-07-14
  • 打赏
  • 举报
回复
首先先谢个给位大虾的慷慨授教!
aspwebchh 的思路确实不错。
kyzy_yy_pm 的正则很犀利 但是确实 这个要是000就给郁闷了。
q107770540 思维够严谨 000确实很让人给郁闷的。

000怎么过滤掉??
q107770540 2011-07-14
  • 打赏
  • 举报
回复
正常的 0.1 都匹配不到鸟~~~
kyzy_yy_pm 2011-07-14
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 q107770540 的回复:]

还有比如 000 也是正确的么?
[/Quote]
呵呵,那就改改

<script>
function check(obj){
var r = /^[-+]?(0?|[1-9]+\d*(\.)?\d*)$/;
if(!r.test(obj.value)){
obj.value = "";
}
}
</script>
<input type="text" onkeyup="check(this)">
q107770540 2011-07-14
  • 打赏
  • 举报
回复
还有比如 000 也是正确的么?
q107770540 2011-07-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 kyzy_yy_pm 的回复:]

<script>
function check(obj){
var r = /^[-+]?(\d+(\.)?\d*)?$/;
if(!r.test(obj.value)){
obj.value = "";
}
}
</script>
<input type="text" onkeyup="check(this)">
[/Quote]
这个也可以匹配到: "0."
kyzy_yy_pm 2011-07-14
  • 打赏
  • 举报
回复
<script>
function check(obj){
var r = /^[-+]?(\d+(\.)?\d*)?$/;
if(!r.test(obj.value)){
obj.value = "";
}
}
</script>
<input type="text" onkeyup="check(this)">
q107770540 2011-07-14
  • 打赏
  • 举报
回复
var reg = /^[+\-]?(?!0\d|[0.]+$)\d+(\.\d+)?$/;
kyzy_yy_pm 2011-07-14
  • 打赏
  • 举报
回复
<script>
function check(obj){
var r = /^[-+]?(\d+.?(\d+)?)?$/;
if(!r.test(obj.value)){
obj.value = "";
}
}
</script>
<input type="text" onkeyup="check(this)">
挨踢直男 2011-07-14
  • 打赏
  • 举报
回复

var n = "11111a";
if(!isNaN(n))
{
alert("是数字")
}
else
{
alert("不是")
}

87,901

社区成员

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

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