javascript - 用正则表达式搜索“非零开头的最多带两位小数的数字”出错???

查看:101
本文介绍了javascript - 用正则表达式搜索“非零开头的最多带两位小数的数字”出错???的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

非零开头的最多带两位小数的数字:^(1-9*)+(.[0-9]{1,2})?$

var str="asdfg0123.3450zxc3.033zxcvb  Aa %^&&&123.45 
reg=/^(1-9*)+(.[0-9]{1,2})?$/g
x=str.match(reg);
document.write(x+'('+x.length+')');

结果会出错:无法获取未定义或 null 引用的属性length
还有,怎么搜索这个字符串中的只有两位小数的独立数字比如123.45(不算123.34或3.03在内)

^(1-9*)+(.[0-9]{1,2})?$有错误,应该为[1-9]+\.([0-9]{1,2})
但是我就想用^表示1-9开头,写成下面这样为什么也不对????
^[1-9]+\.([0-9]{1,2})

解决方案

正则写错了

var str="asdfg0123.3450zxc3.033zxc1.23vb  Aa %^&&&123.45"
reg=/[1-9]\d*\.\d{1,2}(?=\D|$)/g
x=str.match(reg);
console.log(x+'('+x.length+')');
// 输出 1.23,123.45(2)

不知道是否符合你的要求

这篇关于javascript - 用正则表达式搜索“非零开头的最多带两位小数的数字”出错???的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆