jQuery使用正則表達式限制文本框只能輸入數(shù)字
網站中的一個小功能:要求用戶只能輸入16位數(shù)字。
試過javascript的方法:
如:一種方法:
//只允許輸入數(shù)字 function checkkey2(value, e) { var key = window.event ? e.keyCode : e.which; if ((key > 95 && key < 106) || (key > 47 && key < 60)) { } else if (key != 8) { if (window.event) //IE { e.returnValue = false; } else //Firefox { e.preventDefault(); } }; };
另一種方法:
用正則表達式限制只能輸入數(shù)字:
onkeyup="value=value.replace(/[^/d] /g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))"
上面的兩種方法我均用過,但多少都會出現(xiàn)一些問題,比如瀏覽器的兼容性問題,不能達到想要的效果等,所以,最后還是考慮用正則來自己寫。
直接貼代碼了,很簡單的正則表達式:
<head> <meta http-equiv="x-ua-compatible" content="IE=EmulateIE7" /> <title></title> <!-- http://www.cnblogs.com/babycool --> <script src="../js/jquery-1.7.2.min.js" type="text/javascript"></script> <script type="text/javascript"> $(function () { $("#xxxxxx").keyup(function () { //如果輸入非數(shù)字,則替換為'',如果輸入數(shù)字,則在每4位之后添加一個空格分隔 this.value = this.value.replace(/[^\d]/g, '').replace(/(\d{4})(?=\d)/g, "$1 "); }) }); </script> </head> <body> 限制只能輸入19個字符 <input id="xxxxxx" type="text" name="name" value="" maxlength="19" /> <br /> <br /> 輸入非數(shù)字替換為'' <input type="text" name="name" value="" onkeyup="value=value.replace(/[^\d]/g,'')" /> <br /> <br /> </body>
頁面效果:
瀏覽器的兼容性:
我在IE7.8.9.10下,firefox,chrome下測試均可以。
以上就是本文的全部內容,希望這個方法也能給遇到相同問題的其他人帶來幫助,也希望大家多多支持腳本之家。
相關文章
Jquery EasyUI的添加,修改,刪除,查詢等基本操作介紹
初識Jquery EasyUI看了一些博主用其開發(fā)出來的項目,頁面很炫,感覺功能挺強大,效果也挺不錯,最近一直想系統(tǒng)學習一套前臺控件,于是在網上找了一些參考示例2013-10-10jquery 學習之二 屬性(html()與html(val))
取得第一個匹配元素的html內容。這個函數(shù)不能用于XML文檔。但可以用于XHTML文檔。2010-11-11Jquery Ajax學習實例3 向WebService發(fā)出請求,調用方法返回數(shù)據
Jquery Ajax學習實例3 向WebService發(fā)出請求,調用方法返回數(shù)據2010-03-03