1、验证正整数
<script language=javascript>
function check(e){
var num=e.value;
re=/^\d+$/g;
if(re.test(num))
{
alert("正确")
}
else
{
alert("错误")
}
}
</script>
<input name=num onblur=check(this)>
2、验证正整数或2位小数或3位小数
<script language=javascript>
function check(e){
var num=e.value;
re=/^\d+(\.\d{2,3})?$/g;
if(re.test(num))
{
alert("正确")
}
else
{
alert("错误")
}
}
</script>
<input name=num onblur=check(this)>
<script language=javascript>
function check(e){
var num=e.value;
re=/^\d+$/g;
if(re.test(num))
{
alert("正确")
}
else
{
alert("错误")
}
}
</script>
<input name=num onblur=check(this)>
2、验证正整数或2位小数或3位小数
<script language=javascript>
function check(e){
var num=e.value;
re=/^\d+(\.\d{2,3})?$/g;
if(re.test(num))
{
alert("正确")
}
else
{
alert("错误")
}
}
</script>
<input name=num onblur=check(this)>
第一种
<script language=javascript>
function check(e){
var num=e.value;
re=/^[1-9][0-9]*$/g;
if(re.test(num))
{
alert("正确")
}
else
{
alert("错误")
}
}
</script>
<input name=num onblur=check(this)>
第二种a
<script language=javascript>
function check(e){
var num=e.value;
re=/^[1-9][0-9]*(\.\d{0,2})?$/g;
if(re.test(num))
{
alert("正确")
}
else
{
alert("错误")
}
}
</script>
<input name=num onblur=check(this)>
第二种b
<script language=javascript>
function check(e){
var num=e.value;
re=/^[1-9][0-9]*(\.\d{0,3})?$/g;
if(re.test(num))
{
alert("正确")
}
else
{
alert("错误")
}
}
</script>
<input name=num onblur=check(this)>
re=/^\d+$/g; //没有排除 0
/^[0-9]*[1-9][0-9]*$/ //这个比上面的好些,不过若是 0100 前面的 0 没有去掉
所以可以写的更狠些: /^[1-9]\d*$/2.
/^(([1-9]\d*)|0)\.\d[1-9]$/
/^(([1-9]\d*)|0)\.\d\d[1-9]$/
/^(([1-9]\d*(\.\d[1-9])?)|(0\.\d[1-9]))$/
/^(([1-9]\d*(\.\d[1-9])?)|(0\.\d\d[1-9]))$/
/^[+]{0,1}\d{1,}.\d{2}$
2.
/^[+]{0,1}\d{1,}.\d{3}$/
^[+]{0,1}[1-9]{1}\d*$
2.a).
^[+]{0,1}\d{1,}.\d{2}$
2.b).
^[+]{0,1}\d{1,}.\d{3}$
^[+]{0,1}[1-9]{1}\d*$
2.a).
^([+]{0,1}\d{1,}.\d{2}|[+]{0,1}[1-9]{1}\d*)$
2.b).
^([+]{0,1}\d{1,}.\d{3}|[+]{0,1}[1-9]{1}\d*)$
^[+]{0,1}[1-9]{1}\d*$
2.a).
^([+]{0,1}\d{1,}.\d{0,2}|[+]{0,1}[1-9]{1}\d*)$
2.b).
^([+]{0,1}\d{1,}.\d{0,3}|[+]{0,1}[1-9]{1}\d*)$
1)
^[+]{0,1}[1-9]{1}\d*$
2.a).
^([+]{0,1}\d{1,}.\d{1,2}|[+]{0,1}[1-9]{1}\d*)$
2.b).
^([+]{0,1}\d{1,}.\d{1,3}|[+]{0,1}[1-9]{1}\d*)$
1. [+]{0,1} //完全可以用 \+? 代替,这样更简洁,同样 [1-9]{1} 可以写成[1-9]
2.a 与 2.b 没有对 000.00 这样的小数做出判断,你的匹配范围不全。
---------------------------------------------
new RegExp("^[1-9]\d"); //这样只能匹配 10-99 的数字,其它的都匹配不到了。修正一下我对2的回复
/^(([1-9]\d*(\.\d[1-9])?)|(0\.\d[1-9]))$/
/^(([1-9]\d*(\.\d[1-9])?)|(0\.\d\d[1-9]))$/
--------------------------------------------
这个应该也有问题啊
一位小数的时候不可以
第2种 a 使小数末位不能为0,并且可以输入0.几。
<script language=javascript>
function check(e){
var num=e.value;
re=/^([1-9][0-9]*(\.(\d?)[1-9]?)*)|(0\.(\d?)[1-9]?)$/g;
if(re.test(num))
{
alert("正确")
}
else
{
alert("错误")
}
}
</script>
<input name=num onblur=check(this)>
function check(e){
var num=e.value;
re=/^([1-9][0-9]*(\.(\d{0,2})[1-9]?)*)|(0\.(\d{0,2})[1-9]?)$/g;
if(re.test(num))
{
alert("正确")
}
else
{
alert("错误")
}
}
</script>
<input name=num onblur=check(this)>请梅老大指示检查。
备注:小数的位数限制在2位或3位两种情况,即两种情况各一个。
嗯,可能是我误解了楼主的要求,不过他也没有说要一位小数位的呀。
1、 /^[1-9]\d*$/
2、a: /^(([1-9]\d*(\.\d[1-9])?)|(0\.\d?[1-9]))$/
2、b: /^(([1-9]\d*(\.\d[1-9])?)|(0\.\d{,2}[1-9]))$/
TO: hbhbhbhbhb1021(天外水火(我是SB,我要多努力))
2.a: /^([1-9][0-9]*(\.(\d?)[1-9]?)*)|(0\.(\d?)[1-9]?)$/g
2.b: /^([1-9][0-9]*(\.(\d{0,2})[1-9]?)*)|(0\.(\d{0,2})[1-9]?)$/g
严格来说你这两个正则是错的:
^([1-9][0-9]*(\.(\d?)[1-9]?)*) 那我 12.34.56.78 就通过你的验证了。
(0\.(\d?)[1-9]?) 这段正则没有针对 0.0 的判断,即 0.0 也通过你的验证
最后再说一点,没必要用 g 模式了
1、 /^[1-9]\d*$/
2、a: /^(([1-9]\d*(\.\d?[1-9])?)|(0\.\d?[1-9]))$/
2、b: /^(([1-9]\d*(\.\d{,2}[1-9])?)|(0\.\d{,2}[1-9]))$/
COPY代码时没有注意,更正一下:
1、 /^[1-9]\d*$/
2、a: /^(([1-9]\d*(\.\d?[1-9])?)|(0\.\d?[1-9]))$/
2、b: /^(([1-9]\d*(\.\d{,2}[1-9])?)|(0\.\d{,2}[1-9]))$/
================================================================
使用了以下代码进行了校验
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD><BODY>
<h1>问题:</h1>
1.验证大于零正整数(整型,例如:1、2 ……)。<br>
2a.验证大于零的正数。(整型 或 小数,例如:1、2、3.1、3.12)即大于零的整数或小数,小数位“最大”为两位。<br>
2b.验证大于零的正数。(整型 或 小数,例如:1、2、3.1、3.12、3.123)即大于零的整数或小数,小数位“最大”为三位。<br>
<hr>
<h1>梅花雪</h1>
1、 /^[1-9]\d*$/<br>
2、a: /^(([1-9]\d*(\.\d?[1-9])?)|(0\.\d?[1-9]))$/<br>
2、b: /^(([1-9]\d*(\.\d{,2}[1-9])?)|(0\.\d{,2}[1-9]))$/<br>
<SCRIPT LANGUAGE="JavaScript">
function reTest(sIn,sPattern){
if(sIn == "" || sPattern == "")
return false;
if(sPattern.test(sIn))
return true;
else
return false;
}
document.write(reTest("1.1",/^(([1-9]\d*(\.\d?[1-9])?)|(0\.\d?[1-9]))$/) + "<br>");
document.write(reTest("1.1",/^(([1-9]\d*(\.\d{,2}[1-9])?)|(0\.\d{,2}[1-9]))$/));
document.write(reTest("1.123",/^(([1-9]\d*(\.\d{,2}[1-9])?)|(0\.\d{,2}[1-9]))$/));
</SCRIPT>
</BODY>
</HTML>
====================================================================================2、b: /^(([1-9]\d*(\.\d{,2}[1-9])?)|(0\.\d{,2}[1-9]))$/
中梅老大似乎忘记来在d{,2}中写上0,即d{0,2},后两个测试为false
改为/^(([1-9]\d*(\.\d{0,2}[1-9])?)|(0\.\d{0,2}[1-9]))$/可以通过
function check(e){
var num=e.value;
re=/^(([1-9]\d{0,4}(\.\d?[1-9])?)|(0\.\d?[1-9]))$/;
if(re.test(num))
{
alert("正确")
}
else
{
alert("错误")
}
}
</script>
<input name=num onblur=check(this)>
改完了
1、 /^[1-9]\d*$/
2、a: /^(([1-9]\d{0,4}(\.\d?[1-9])?)|(0\.\d?[1-9]))$/
2、b: /^(([1-9]\d*(\.\d{0,2}[1-9])?)|(0\.\d{0,2}[1-9]))$/
第二个问题:我真正想要的是一个"大于零的,整数位不能大于5位,小数位不能大于2位"的正则表达式
新问题:
由于数据保存后,数据库为numberinc(5,2)类型的字段,如果数据为10,现在在我们的前台使用的控件中显示后会默认显示成10.00,这个时候因为使用
________________________________________________
大于零的,整数位不能大于5位,小数位不能大于2位/^(([1-9]\d{0,4}(\.\d?[1-9])?)|(0\.\d?[1-9]))$/
________________________________________________
这个表达式排除了".00"的情况,而对于我们现在的系统,可能保存后再修改的时候,其中大量的自动加的".00"就验证不过。
所以现在需要:
"大于零的,整数位不能大于5位,小数位不能大于2位"且允许".00"的情况通过。