lxcnn(过客),帮忙看这个货币正则,谢谢

wangxianshou 2010-07-23 02:54:09
var re = /^(¥)?(-)?(\d+|,\d{3})+(\.\d{0,8})?$/;

这是目前用的,不过有些问题
格式要求是:
1.整数位数限制为(1-12)符号不计算在内
2.小数部分限制为(0-8)位
3.三位一分割,可以加逗号,加的话,所有
三位分割的地方都加,不加的话一个也不加
现在的这个
",123" 是非法,现在这个却也匹配上了


...全文
119 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangxianshou 2010-07-26
  • 打赏
  • 举报
回复
最终正则

//貨幣正則(整数:12;小数:8)
var re = /^(¥)?(-)?(0|([1-9]\d{0,2}((,\d{3}){0,3}|\d{0,9})))(\.\d{1,8})?$/
wangxianshou 2010-07-24
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wuyazhe 的回复:]
看错了。小数8位
<script type="text/javascript">
var test = '13,123.1';
var reg = /^¥?-?(?!\.)(?!\d{13})\d{1,3}(,?\d{3})*(\.\d{1,8})?$/ig;
document.write(test.match(reg));
</script>
[/Quote]
你的这个,123456,789,123.12345678也能匹配上,但是不是合法的
兔子-顾问 2010-07-24
  • 打赏
  • 举报
回复
加上12位的限制。。。

<script type="text/javascript">
var test = '123456,789,123.12345678';
var reg = /^¥?-?(?!\.)(?!\d{13})(?:\d{1,3}(?:,\d{3}){0,3}|\d{1,12})(?:\.\d{1,8})?$/ig;
document.write(test.match(reg));
</script>
兔子-顾问 2010-07-24
  • 打赏
  • 举报
回复
er。。。
123456,789,123.12345678
嗯。疏忽了。
这样试试?

<script type="text/javascript">
var test = '123456,789,123.12345678';
var reg = /^¥?-?(?!\.)(?!\d{13})(?:\d{1,3}(?:,\d{3})*|\d{1,12})(?:\.\d{1,8})?$/ig;
document.write(test.match(reg));
</script>
兔子-顾问 2010-07-23
  • 打赏
  • 举报
回复
看错了。小数8位
<script type="text/javascript">
var test = '13,123.1';
var reg = /^¥?-?(?!\.)(?!\d{13})\d{1,3}(,?\d{3})*(\.\d{1,8})?$/ig;
document.write(test.match(reg));
</script>
兔子-顾问 2010-07-23
  • 打赏
  • 举报
回复
正则爱好者路过

<script type="text/javascript">
var test = '13,123.1';
var reg = /^¥?-?(?!\.)(?!\d{13})\d{1,3}(,?\d{3})*(\.\d{1,3})?$/ig;
document.write(test.match(reg));
</script>
wangxianshou 2010-07-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wtcsy 的回复:]
正则爱好者路过
/^(¥)?(-)?[1-9]\d{0,2}((,\d{3}){0,3}|\d{0,9})(\.\d{0,8})?$/
[/Quote]
单独一个0的时候,处理不了,修改了下

var re = /^(¥)?(-)?(0|([1-9]\d{0,2}((,\d{3}){0,3}|\d{0,9})))(\.\d{0,8})?$/
wangxianshou 2010-07-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sandy945 的回复:]
那你应该挪到C#版
[/Quote]
Javascript中用的
wangxianshou 2010-07-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wtcsy 的回复:]
正则爱好者路过
/^(¥)?(-)?[1-9]\d{0,2}((,\d{3}){0,3}|\d{0,9})(\.\d{0,8})?$/
[/Quote]
OK
wtcsy 2010-07-23
  • 打赏
  • 举报
回复
正则爱好者路过
/^(¥)?(-)?[1-9]\d{0,2}((,\d{3}){0,3}|\d{0,9})(\.\d{0,8})?$/
阿非 2010-07-23
  • 打赏
  • 举报
回复
那你应该挪到C#版

87,901

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧