1、首先新建一个html文件,命名为test.html。
2、在test.html文件内,在p标签内,使用input标签创建一个数字输入框,代码如下。
3、在test.html文件内,设置input标签的id为testinput,主要用于下面通过该id获得input对象。
4、在test.html文件内,使用button标签创建一个按钮,按钮名称为“验证输入数字”。
5、在test.html文件中,给button按钮绑定onclick点击事件,当按钮被点击时,执行yanzheng()函数。
6、在js标签中,创建yanzheng()函数,在函数内,使用val()方法获得输入的数字,并创建验证的正则表达式“/^([0-9]|(1[0-5]))$/”,利用正则表达式,通过test()方法来验证输入的数字。
7、在浏览器打开test.html文件,输入数字,点击按钮,查看实现的效果。
不能为0的正则表达式是:[1-9]?|\d{2,}
解释:
[1-9]? # : 表示1到9的一位数或者为空
?:表示可以为空
|\d{2,} # :表示任意2位以上数字
JavaScript代码:
var pattern = /([1-9]?|\d{2,})/,
str = '';
console.log(pattern.test(str));
扩展资料
常用校验数字的正则表达式:
1、数字:^[0-9]*$
2、n位的数字:^\d{n}$
3、至少n位的数字:^\d{n,}$
4、m-n位的数字:^\d{m,n}$
5、零和非零开头的数字:^(0|[1-9][0-9]*)$
6、非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(\.[0-9]{1,2})?$
7、带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})$
8、正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$
9、有两位小数的正实数:^[0-9]+(\.[0-9]{2})?$
10、有1~3位小数的正实数:^[0-9]+(\.[0-9]{1,3})?$
11、非零的正整数:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$
[1-9]?|\d{2,}
[1-9]? # 可以是1到9的一位数或者为空,问号表示可以为空
|\d{2,} # 也可以是任意2位以上数字
如果要排除00,00000,0000000这样N个零的情况,可以加上断言
(?!0+$) #断言正则不是完全由N个0组成
最终的正则表达式为:
(?!0+$)[1-9]?|\d{2,}
楼上乱写,鄙视之
|
|
V
var reg =/[1-9]?|\d{2,}/;
alert(reg.test("0"));
好像不对啊
^([1-9]?|\d{2,})$
如果用reg.test的话,不能匹配整个字符串,要加上开始符^和结束符$
对了,如果加上断言的话(排除多个0),可以简化到以下正则:
(?!0+$)^\d*$
这样就行了啊
这样可以么?
不行吧 为空能通过校验吗?