前言 :
同事在實現發布商品中填寫單價時,需要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>
順便上一下交流圖:

