javascript - 用正则表达式搜索“非零开头的最多带两位小数的数字”出错???
伊谢尔伦
伊谢尔伦 2017-04-10 17:11:01
[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})

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(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)

不知道是否符合你的要求

大家讲道理

/[1-9]\d*(\.\d{1,2})?$/g

  1. [1-9],不是(1-9)。前面的表示一个字符,后面的表示1,-,93个字符

  2. 开头的不能有0,后面的没有限制。所以开头的数字要和后面的数字区分开来

  3. .要转义成\.,因为这是特殊字符

  4. [0-9]可以简写为\d

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号