html中常用JavaScript驗證表單文本域方法,如日期、字串、數字等

來源:互聯網
上載者:User

//===========驗證函式 start<br />var isIE = false;<br />var isFF = false;<br />var isSa = false;<br />if ((navigator.userAgent.indexOf("MSIE") > 0) && (parseInt(navigator.appVersion) >= 4)) {<br />isIE = true;<br />}<br />if (navigator.userAgent.indexOf("Firefox") > 0) {<br />isFF = true;<br />}<br />if (navigator.userAgent.indexOf("Safari") > 0) {<br />isSa = true;<br />}</p><p>//作用:控制職能輸入數字<br />function onlyNumber(e) {<br />var key;<br />iKeyCode = window.event ? e.keyCode : e.which;<br />if (!(((iKeyCode >= 48) && (iKeyCode <= 57)) || (iKeyCode == 13) || (iKeyCode == 46) || (iKeyCode == 45) || (iKeyCode == 37) || (iKeyCode == 39) || (iKeyCode == 8))) {<br />if (isIE) {<br />e.returnValue = false;<br />} else {<br />e.preventDefault();<br />}<br />}<br />}</p><p>// 文字框: <input type="text" maxlength="8" Class="input" name="txtName" onkeypress="return onlyNumber(event)" style="ime-mode:Disabled" size="25"/><br />/*<br />禁止提交非小數或非整數,需要三個步驟:<br />1.文字框事件 onkeypress="return onlyNumber(event)"<br />2.文字框樣式 style="ime-mode:Disabled"<br />3.在提交函數save()裡,添加<br /> if (validateNumber('txtName')){<br /> document.form1.submit();<br /> }<br /> */<br /> //如果包含非數字,則返回false。允許輸入小數點<br />function validateNumber() {<br />var len = arguments.length;<br />var flag = true;<br />for (var i = 0; i < arguments.length; i++) {<br />flag = numericCheck(arguments[i]);<br />}<br />return flag;<br />}</p><p>//作用:只允許輸入數字,並提示發現若干個個不可接受的字元<br />function numericCheck(parameter) {<br />var el = document.getElementById(parameter);<br />nr1 = document.getElementById(parameter).value;<br />flg = 0;<br />str = "";<br />spc = "";<br />arw = "";<br />for (var i = 0; i < nr1.length; i++) {<br />cmp = ".0123456789";<br />tst = nr1.substring(i, i + 1);<br />if (cmp.indexOf(tst) < 0) {<br />flg++;<br />str += " " + tst;<br />spc += tst;<br />arw += "^";<br />} else {<br />arw += "_";<br />}<br />}<br />if (flg != 0) {<br />if (spc.indexOf(" ") > -1) {<br />str += "和空格";<br />}<br />var prevNode = el.parentNode.previousSibling.innerText;<br />alert(prevNode+"只允許輸入數字,發現" +flg+"個不可接受的字元/n");<br />el.select();<br />el.focus();<br />return false;<br />} else {<br />return true;<br />}<br />}</p><p>//作用:判斷日期是否合法,能夠有效驗證閏年,支援的日期格式有:2009-01-01、2009/01/01兩種格式<br />//參數:dateValue<br />function IsDate(dateValue) {<br />var regex = new RegExp("^(?:(?:([0-9]{4}(-|/)(?:(?:0?[1,3-9]|1[0-2])(-|/)(?:29|30)|((?:0?[13578]|1[02])(-|/)31)))|([0-9]{4}(-|/)(?:0?[1-9]|1[0-2])(-|/)(?:0?[1-9]|1//d|2[0-8]))|(((?:(//d//d(?:0[48]|[2468][048]|[13579][26]))|(?:0[48]00|[2468][048]00|[13579][26]00))(-|/)0?2(-|/)29))))$");<br />if (!regex.test(dateValue)) {<br />return false;<br />} else {<br />return true;<br />}<br />}</p><p>//作用:比較日期,目前只支援“年-月-日”格式,如果sEndDate晚於sBeginDate,返回true,<br />//參數:sBeginDate<br />// sEndDate<br />function compareDate(sBeginDate, sEndDate) {<br />var strdt1 = sBeginDate.replace("-", "/");<br />var strdt2 = sEndDate.replace("-", "/");<br />var dt1 = new Date(Date.parse(strdt1));<br />var dt2 = new Date(Date.parse(strdt2));<br />if (dt1 <= dt2) {<br />return true;<br />} else {<br />return false;<br />}<br />}</p><p>//===========驗證函式 end</p><p>//字串操作函數<br />String.prototype.trim = function () {<br />return this.replace(/(^/s*)|(/s*$)/g, "");<br />};<br />String.prototype.ltrim = function () {<br />return this.replace(/(^/s*)/g, "");<br />};<br />String.prototype.rtrim = function () {<br />return this.replace(/(/s*$)/g, "");<br />};</p><p>//作用:刪除左右兩端的空格<br />//參數:str,待處理的字串<br />function trim(str) {<br />return str.replace(/(^/s*)|(/s*$)/g, "");<br />}</p><p>//作用:刪除左邊的空格<br />//參數:str,待處理的字串<br />function ltrim(str) {<br />return str.replace(/(^/s*)/g, "");<br />}</p><p>//作用:刪除右邊的空格<br />//參數:str,待處理的字串<br />function rtrim(str) {<br />return str.replace(/(/s*$)/g, "");<br />}</p><p>//作用:去除左右空格,判斷得出值的長度是否為0,是則true,大於0則false<br />//參數:value<br />function ifValueLengthIsZero(value) {<br />var v = trim(value);<br />if (v.length < 1) {<br />return true;<br />}<br />return false;<br />}</p><p>//作用:字串操作函數,數字校檢<br />//使用範例:<input type="text" name="Code" size="10" maxlength="6" OnKeyPress="Javascript:NumInputOnly();"<br />function NumInputOnly() {<br />if (event.keyCode > 57 || event.keyCode < 48) {<br />event.keyCode = 0;<br />}<br />}</p><p>//作用:判斷是否為輸入整數<br />//參數:s,傳入字串<br />function isInt(s) {<br />if (s.value == "") {<br />return true;<br />}<br />var chk = parseInt(s.value, 10);<br />if (chk != s.value || chk < 0) {<br />alert("該欄位應是正整數!");<br />s.focus();<br />s.select();<br />return false;<br />}<br />return true;<br />}</p><p>//作用:浮點數輸入判斷<br />//參數:obj傳入參數<br />function isFloat(obj) {<br />if (obj.value == "") {<br />return true;<br />}<br />var chk = parseFloat(obj.value);<br />if (chk != obj.value) {<br />alert("該欄位應是整數或小數!");<br />obj.focus();<br />obj.select();<br />return false;<br />}<br />return true;<br />}</p><p>//作用:獲得字串串長度<br />//參數:value,傳入字串<br />function strLen(value) {<br />var str, Num = 0;<br />for (var i = 0; i < value.length; i++) {<br />str = value.substring(i, i + 1);<br />if (str <= "~") {<br />Num += 1;<br />} else {<br />Num += 2;<br />}<br />}<br />return Num;<br />}</p><p>//作用:最小長度 (不可為空)<br />//參數:value,傳入字串<br />function vMinlength(obj, minlength) {<br />if (trim(obj.value).length < minlength) {<br />obj.focus();<br />obj.select();<br />return false;<br />}<br />return true;<br />}</p><p>//作用:最大長度 (不可為空)<br />//參數:value,傳入字串<br />function vMaxlength(obj, maxlength) {<br />if (trim(obj.value).length > maxlength) {<br />obj.focus();<br />obj.select();<br />return false;<br />}<br />return true;<br />}</p><p>//作用:判斷輸入時是否超過了資料庫設定的字元長度<br />//參數:Str,頁面上的欄位<br />// ValidStrLength,資料庫設定的長度<br />// StrName,表示是什麼欄位名稱<br />//調用指南:<br />/* if (!TrueLength(vcjlzdbdh.value,50,"認證編號")){<br /> vcjlzdbdh.focus();<br /> return(false);<br /> }<br /> 若超過長度,則會彈出“您輸入的 認證編號 長度超過最大允許值。”的提示<br />*/<br />function TrueLength(Str, ValidStrLength, StrName) {<br />var r;<br />var i;<br />var count = 0;<br />var ret;<br />for (i = 0; i < Str.length; i++) {<br />r = Str.charCodeAt(i, 1);<br />if (r > 255) {<br />count = count + 2;<br />} else {<br />count = count + 1;<br />}<br />}<br />if (count > ValidStrLength) {<br />alert("您輸入的 "+StrName+" 長度超過最大允許值。");<br />ret = false;<br />} else {<br />ret = true;<br />}<br />return ret;<br />}</p><p>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.