js验证输入的值是否钱数

1.text文本框接受输入的值,输入的值要符合如下规则:

(1).没有小数点的正整数,可以加字符"元":

      正则表达式为 ^[1-9]+[元]?$。

(2).带有小数点的正浮点数,小数点后最多2位可以加字符"元":

      正则表达式为^[1-9]+[\.][0-9]{1,2}[元]?$

(3).小于1的带有小数点的正浮点数,同样小数点后最多2位可以加字符"元":

          正则表达式为^[0][\.][0-9]{1,2}[元]?$

(4).表示0元:

          正则表达式为^[0][元]?$

 

示例代码:

 

<script>
  function isMoneys(s){   
	 //在匹配123XXX时,匹配123,不去验证后面的字符。
	// var regu = "(^[1-9]+|[0][\.][0-9]{1,2}[元]?$)|(^[1-9]+|[0][元]?$)";
	//为了解决上面的问题,在正则开头加了括号这样就不会放过123xxx了。
	//但匹配123.12时,正则(^([1-9]+|[0])[元]?$)会匹配123.
	 //var regu = "(^([1-9]+|[0])[\.][0-9]{1,2}[元]?$)|(^([1-9]+|[0])[元]?$)"; 

	//为了在匹配123.12时,避免正则(^([1-9]+|[0])[元]?$)会匹配123,所以把去掉了括号()中的竖线,把正则分开写。
	 var regu = "(^[1-9]+[\.][0-9]{1,2}[元]?$)|(^[0-9]+[元]?$)|(^[0][元]$)|(^[0][\.][0-9]{1,2}[元]?$)";
	 var re = new RegExp(regu);
	 alert(re.exec(s));
	 if (re.test(s)) {
		return true;
	 } else {
		alert("付款金额输入有误!");
		return false;
	 }
}
  
 </script>

<table>
 <tr>
	 <td class="tbtd">付款金额(元)<span style="color: red;">*</span></td>
	 <td colspan="3">
	 <input type="text"  οnblur="isMoneys(this.value)"   name="JD_SQD_FK_DETAIL/FK_JE" id="JD_SQD_FK_DETAIL/FK_JE" size="80" style="border:solid 1 blue;font-size:15px;"/>&nbsp;</td>
 </tr>
</table>

   

总结:在js验证表达式中竖线|用的地方很多,竖线表示二选一。大括号{}表示连续次数,但是{0,1,2}会出现错误。因为{0}表示不出现,其中大括号失去了意义。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值