JavaScript js 不用正則驗證小數完美方法

來源:互聯網
上載者:User

在javascript驗證表單、文本域、整數小數的方式多種多樣。今天我也寫了一個驗證小數的解決方案,不需要使用者點擊什麼按鈕或是失去焦點後。給予使用者反感的alert警告提示。這裡不能輸入的是不容許出現在文字框中的。就這樣也不需要經常alert來提示使用者輸入錯誤。此驗證方法很簡單,但設計也很巧妙。使用的是我們常用split、array、substring等方法函數設計而成;</p><p><html><br /><head><br /><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><br /><title>小數驗證</title><br /><script><br />String.prototype.replaceAll = function(s1, s2) {<br /> return this.replace(new RegExp(s1, "gm"), s2); //g全域、m多行<br />}</p><p>String.prototype.replaceAll2Excep = function(s1, s2) {<br />var temp = this;<br />while (temp.indexOf(s1) != -1) {<br />temp = temp.replace(s1, s2);<br />}<br /> return temp;<br />}</p><p>/***<br />* 次驗證方法很簡單,但設計也很巧妙。使用的是我們常用split、array、substring等<br />* @author hoojo<br />* @param o 驗證的對象,即當前文本域<br />* @param precision 精確多少位小數<br />* @version 3.1<br />**/<br />function checkFloat(o, precision) {<br />var val = o.value;//驗證小數<br />if (parseFloat(val) != val) {<br />var ar = val.split('');<br />for(var i = 0; i < ar.length; i++) {<br />var charCode = ar[i].charCodeAt(0);<br />if (charCode > 57 || charCode < 46 || charCode == 47) {<br />//o.value = val.replaceAll(ar[i], '');這個replaeAll裡面用的正則,/*+是特殊字元,所以才不能替換的<br /> o.value = val.replaceAll2Excep(ar[i], '');<br />}<br />}<br />}<br />var ary = o.value.split('.');<br />if (ary.length >= 2) {<br />if (ary[0] == "") {<br />ary[0] = 0;<br />}<br />var temp = ary[1];<br />if (ary[1].length > precision) {<br />ary[1] = ary[1].substring(0, precision);<br />}<br />o.value = ary[0] + "." + ary[1];<br />if (0 == precision) {<br />o.value = ary[0];<br />}<br />} else {<br />var vals = o.value;<br />if (vals != "" && !isNaN(vals)) {<br />o.value = parseInt(vals);<br />}<br />}<br />}<br /></script><br /></head></p><p><body><br /><input type=text value="" onkeyup="checkFloat(this, 1)" maxlength="9"/><br /></body></p><p></html>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.