js限制文本框只能輸入數(shù)字(正則表達式)
更新時間:2012年07月15日 23:08:06 作者:
讓文本框只能輸入數(shù)字也是我們非常常用的一種功能,很多程序中涉及的例如財務、銷售等等領域的地方,想要限制用戶的輸入是非常必要的,如果不能限制用戶的輸入內容的合法性,輕則系統(tǒng)異常,重則數(shù)據(jù)錯誤,所以對用戶輸入域的合法性驗證或限制不容小覷
好了,言歸正傳。話說我在網(wǎng)上找了很多限制文本框的辦法都不盡人意,于是只好自己動手實踐了,實踐出真知嘛,這句話沒錯的。
function chkPrice(obj){
obj.value = obj.value.replace(/[^\d.]/g,"");
//必須保證第一位為數(shù)字而不是.
obj.value = obj.value.replace(/^\./g,"");
//保證只有出現(xiàn)一個.而沒有多個.
obj.value = obj.value.replace(/\.{2,}/g,".");
//保證.只出現(xiàn)一次,而不能出現(xiàn)兩次以上
obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
}
function chkLast(obj){
// 如果出現(xiàn)非法字符就截取掉
if(obj.value.substr((obj.value.length - 1), 1) == '.')
obj.value = obj.value.substr(0,(obj.value.length - 1));
}
下面是需要調用的文本框:
<input type="text" name="txtFee" id="txtFee" class="common" onkeyup="chkPrice(this);" onblur="chkLast(this)" onpaste="javascript: return false;"/>
最后這個:onpaste="javascript: return false;" 的目的是禁用鼠標右鍵的“粘貼”菜單,可以防止鼠標右鍵或者Ctrl + V粘貼不合法的數(shù)據(jù),嘿嘿。
上面這段JS我只在IE8環(huán)境測試過,如果各位看官有什么想法或者疑問,請留言。
復制代碼 代碼如下:
function chkPrice(obj){
obj.value = obj.value.replace(/[^\d.]/g,"");
//必須保證第一位為數(shù)字而不是.
obj.value = obj.value.replace(/^\./g,"");
//保證只有出現(xiàn)一個.而沒有多個.
obj.value = obj.value.replace(/\.{2,}/g,".");
//保證.只出現(xiàn)一次,而不能出現(xiàn)兩次以上
obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
}
function chkLast(obj){
// 如果出現(xiàn)非法字符就截取掉
if(obj.value.substr((obj.value.length - 1), 1) == '.')
obj.value = obj.value.substr(0,(obj.value.length - 1));
}
下面是需要調用的文本框:
復制代碼 代碼如下:
<input type="text" name="txtFee" id="txtFee" class="common" onkeyup="chkPrice(this);" onblur="chkLast(this)" onpaste="javascript: return false;"/>
最后這個:onpaste="javascript: return false;" 的目的是禁用鼠標右鍵的“粘貼”菜單,可以防止鼠標右鍵或者Ctrl + V粘貼不合法的數(shù)據(jù),嘿嘿。
上面這段JS我只在IE8環(huán)境測試過,如果各位看官有什么想法或者疑問,請留言。
相關文章
利用JavaScript更改input中radio和checkbox樣式
利用JavaScript更改input中radio和checkbox樣式的實現(xiàn)代碼。2009-11-11
IE不支持option的display樣式,只能使用remove和add
想實現(xiàn)一個很簡單的功能:當選中“中介”時,不顯示“求購”與“求租”。本以為通過display:none即可實現(xiàn),結果發(fā)現(xiàn)在option元素上使用display:none在firefox中有效,在IE6、IE7、IE8中都無效。2009-12-12

