javascript - 用正则表达式搜索“非零开头的最多带两位小数的数字”出错???
本文介绍了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屋!
查看全文