var v = "1.1啊"; var re =/^[0-9]+(\.?[0-9]{1,6}$)?/; if(re.test(v)){ alert("pass");}else{ $('#valueDiv').html("<font color='red'>只能为整型或浮点型</font>"); return ; }我有否用错? 不显示啊、
方法调用错了用if (re.exec(v))
<html> <script> var str = "0.2313"; var re = "^[0-9]+\\.??[0-9]+$"; if(str.match(re) != null && str.length <= 6){ alert("ok"); }else{ alert("error"); } </script> <body> test.html <body> </html>
试试var s = '1233.61'; var re = /^(?=^\d?\D*\d?\D*\d?\D*\d?\D*\d?\D*\d?\D*)[0-9]+(\.[0-9]+)?$/; alert(re.test(s))
你们让开,高手来了。你的问题有歧义。 如果指的是小数点后有六位,那么这个正则很好写: var expression=/^\d+(\.\d{1,6})?$/; //因为是非负数,所以只需要第一位是数字就行了,不用判断有没有“-”。如果你指的是总长度六位,那么要复杂一些 var expression=/^(?=.{1,6}$)\d+(\.\d+)?$/第二种写法需要你的环境支持环视,因为是JS,所以在IE里应该木有问题。如果实在不能判断长度,那摸斗写个函数来判长度罢。最后,记得给我分哦。
var v = "1.1啊";
var re =/^[0-9]+(\.?[0-9]{1,6}$)?/;
if(re.test(v)){
alert("pass");}else{
$('#valueDiv').html("<font color='red'>只能为整型或浮点型</font>");
return ;
}我有否用错? 不显示啊、
<html>
<script>
var str = "0.2313";
var re = "^[0-9]+\\.??[0-9]+$";
if(str.match(re) != null && str.length <= 6){
alert("ok");
}else{
alert("error");
}
</script>
<body>
test.html
<body>
</html>
var re = /^(?=^\d?\D*\d?\D*\d?\D*\d?\D*\d?\D*\d?\D*)[0-9]+(\.[0-9]+)?$/;
alert(re.test(s))
/^(?=\d?\D*\d?\D*\d?\D*\d?\D*\d?\D*\d?\D*$)[0-9]+(\.[0-9]+)?$/
如果指的是小数点后有六位,那么这个正则很好写:
var expression=/^\d+(\.\d{1,6})?$/; //因为是非负数,所以只需要第一位是数字就行了,不用判断有没有“-”。如果你指的是总长度六位,那么要复杂一些
var expression=/^(?=.{1,6}$)\d+(\.\d+)?$/第二种写法需要你的环境支持环视,因为是JS,所以在IE里应该木有问题。如果实在不能判断长度,那摸斗写个函数来判长度罢。最后,记得给我分哦。
/^\d+(\.\d{1,6})?$/ 这个 就不严格,人家说非负数 ,你\d+ 开始 0001 这样的都进去了,
=/^(?=.{1,6}$)\d+(\.\d+)?$/ 这个也不对 你的肯定型顺序环视用错了 ,(?=.{1,6}$) 表示环视内容是点后面1到6位,一共6位,你这个小数点后面都6位了,环视错了就等于没用,再看后面的00.000这样的也进去了,这个肯定是楼主不想要的东西。
学了几天正则就卖弄啊 。不过还知道环视是什么,说明还是懂点的。可惜啊,年轻人,太鲁莽。这个我看了下我明白了楼主的意思,总共长6位,
2.67788
3456667
23.5666
0.55555
这样的都符合的话,就和9楼说的一样,动态匹配需要用到环视。
环视有四种:
肯定型顺序环视(?=……)
肯定性逆序环视(?<=……)
否定型顺序环视(?!……)
否定型逆序环视(?<!……)
环视是用来缩小查找匹配范围和确定位置的。
环视的性能很差,效率很定。如果正常的正则表达式解决不了,建议楼主用程序和正则结合的方式,最好别用环视。
正则判断是否有非法字符,然后程序判断长度,这样做的时候很简单,而且效率也高。
如果楼主一定要一个正则搞定 那请楼主qq联系我 236788273我的正则表达式 讲义下载http://download.csdn.net/detail/zzq19860626/4048641
var num = 1.1;
if(/^[0-9]+(.[0-9]{1,6})?$/.test(num)){
........
}
判断是正整数,或正的浮点数,并且小数点后最多是6位。
1.000000 false
火药味道很浓啊、 我测测先、先谢谢各位这么热情、
更正: 用错比对了、 后来经过测试: 统一使用 var str = document.getElementById('price').value;//一个输入框测试
var re = "你们的正则";
alert(re.test(str))
1楼没有位数控制、 3楼的不知道是我用错了还是怎么、js错误、不能用、 8楼的可以、 9楼的在 111.001 是错的、 14楼的 不知道我用错了 还是如何、 js错误、不能用 另外大家别太激烈的互相诋毁、 事情是靠人来解决的、 诋毁其实能证明自己一些不足、情绪激动、
如果我哪里用错了正则比对、请告诉我哈、