完美版js金钱正则表达式校验

前言 :

同事在实现发布商品中填写单价时,需要js校验价格是否符合金钱的格式,在网上找了一些,没有一个能解决问题的,都是简单的校验,漏洞百出。

我说这还不简单,不就一个正小数吗?
他说你写写就知道了,情况有多复杂,写就写,一写才知道情况确实很多,给他写了一个又一个,他都能找出不完美的问题,经过10轮修改后,最后彻底征服他了,得出最终完美版,发出来给大家分享一下,欢迎大家测试修改。

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>Document</title>
 </head>
 <body>
 
 <script type="text/javascript">
	 var reg = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/;
	 var money = "520.100";
	 //000 错
	 //0 对
	 //0. 错
	 //0.0 对
	 //050 错
	 //00050.12错
	 //70.1 对
	 //70.11 对
	 //70.111错
	 //500 正确
	 if (reg.test(money)) {
		  alert("正确~");
	 }else{
		  alert("有误~");
	 };
 </script>
  

 </body>
</html>

  

顺便上一下交流图:

posted @ 2015-12-04 15:40  漫步枫  阅读(53295)  评论(11编辑  收藏  举报