正则表达式 不能为0

有一个js的正则限制,可以为空或者数字,但是不能为0帮忙写下。谢谢!... 有一个js的正则限制,可以为空或者数字,但是不能为0
帮忙写下。谢谢!
展开
 我来答
帐号已注销
高粉答主

2020-03-03 · 每个回答都超有意思的
知道答主
回答量:2169
采纳率:0%
帮助的人:35.8万
展开全部

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文件,输入数字,点击按钮,查看实现的效果。

帐号已注销
2019-07-05 · TA获得超过1.2万个赞
知道答主
回答量:25
采纳率:0%
帮助的人:6052
展开全部

不能为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]*$

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
绯弹亚丝娜
推荐于2017-09-04 · TA获得超过1094个赞
知道小有建树答主
回答量:330
采纳率:100%
帮助的人:134万
展开全部
正则表达式如下:
[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*$
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友948147b
2018-05-30
知道答主
回答量:6
采纳率:0%
帮助的人:6570
展开全部

(\d+.\d+|-\d+.\d+|[1-9]\d+|[1-9])

|:或者的意思

\d:匹配任意数字

+:匹配多个(\d+表示匹配任意数字,可以多个)

[1-9]:只能匹配1到9的数字,只能一位数

上面的意思是可以匹配以下的表达式:

\d+.\d+:带小数点的正数

-\d+.\d+:带小数点的负数

[1-9]\d+:多位数

[1-9]:一位数

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
无限出品0435
2014-08-17 · 超过68用户采纳过TA的回答
知道答主
回答量:115
采纳率:0%
帮助的人:155万
展开全部
[0-9]*[1-9][0-9]*
这样就行了啊
这样可以么?
追问
不行吧  为空能通过校验吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式