『JavaScript』限制Input只能輸入數(shù)字實(shí)現(xiàn)思路及代碼
更新時間:2013年04月22日 09:56:38 作者:
一個文字方塊必須限制只能輸入數(shù)字(或是小數(shù)點(diǎn))并且要支援 IE 和 Firefox,接下來為大家介紹下如何解決這個需求
這玩意很多人寫過,但是今天臨時要用的時候找不到符合需求的,所以立馬來寫一個,既然都寫完了而且還滿符合需求的就放上來讓大家鞭一鞭。
需求很簡單,一個文字方塊必須限制只能輸入數(shù)字(或是小數(shù)點(diǎn))并且要支援 IE 和 Firefox。
HTML的 Input 是這樣下滴
<input type="text" style="ime-mode:disabled" onkeyup="return ValidateNumber($(this),value)" />
•其中那個 Style 是在 IE 瀏覽器下有效用的,可以讓使用者無法在這文字方塊內(nèi)使用輸入法。
•而onkeyup 則是我們自己撰寫的 js 啦,完整的 Code 在下面。
--------------------------------------------------------------------------------
驗(yàn)證只能輸入數(shù)字
function ValidateNumber(e, pnumber){
if (!/^\d+$/.test(pnumber)){
$(e).val(/^\d+/.exec($(e).val()));
}
return false;
}
demo 是利用 Regex 來將不屬于數(shù)字的過濾掉。
--------------------------------------------------------------------------------
實(shí)務(wù)上經(jīng)常需要驗(yàn)證的是有小數(shù)點(diǎn)的欄位,網(wǎng)路上搜尋到的一堆是可以輸入「1.2.3456」的這種詭異值,其實(shí)只要小改一下 Regex 就可以驗(yàn)證了。
function ValidateFloat(e, pnumber){
if (!/^\d+[.]?\d*$/.test(pnumber)){
$(e).val(/^\d+[.]?\d*/.exec($(e).val()));
}
return false;
}
這樣子就可以輸入整數(shù)也可以輸入一個小數(shù)點(diǎn)
--------------------------------------------------------------------------------
以上就給有需要的朋友使用啦。
因?yàn)橛芯W(wǎng)友說這種玩意兒不需要動用到 jQuery 的確,是不用動用到所以來寫一下 純 javascript 的版本
HTML要有所改變
<input type="text" style="ime-mode:disabled" onkeyup="return ValidateNumber(this,value)" />
只能輸入數(shù)字(純 javascript)
function ValidateNumber(e, pnumber){
if (!/^\d+$/.test(pnumber)){
e.value = /^\d+/.exec(e.value);}
return false;
}
可以輸入小數(shù)(純 javascript)
function ValidateNumber(e, pnumber)
{
if (!/^\d+[.]?\d*$/.test(pnumber))
{
e.value = /^\d+[.]?\d*/.exec(e.value);
}
return false;
}
有網(wǎng)友說他想要限制只有小數(shù)點(diǎn)后一位就好,因此再來小改一下其實(shí)重點(diǎn)只有RegExp要改而已
function ValidateFloat2(e, pnumber)
{
if (!/^\d+[.]?[1-9]?$/.test(pnumber))
{
e.value = /\d+[.]?[1-9]?/.exec(e.value);
}
return false;
}
如果你是用萬惡的IE那當(dāng)你一開始就輸入非數(shù)字的時候就會送你一個討厭的null因此又要改寫成這樣過濾掉
if (!/^\d+$/.test(pnumber))
{
var newValue = /^\d+/.exec(e.value);
if (newValue != null)
{
e.value = newValue;
}
else
{
e.value = "";
}
}
return false;
需求很簡單,一個文字方塊必須限制只能輸入數(shù)字(或是小數(shù)點(diǎn))并且要支援 IE 和 Firefox。
HTML的 Input 是這樣下滴
復(fù)制代碼 代碼如下:
<input type="text" style="ime-mode:disabled" onkeyup="return ValidateNumber($(this),value)" />
•其中那個 Style 是在 IE 瀏覽器下有效用的,可以讓使用者無法在這文字方塊內(nèi)使用輸入法。
•而onkeyup 則是我們自己撰寫的 js 啦,完整的 Code 在下面。
--------------------------------------------------------------------------------
驗(yàn)證只能輸入數(shù)字
復(fù)制代碼 代碼如下:
function ValidateNumber(e, pnumber){
if (!/^\d+$/.test(pnumber)){
$(e).val(/^\d+/.exec($(e).val()));
}
return false;
}
demo 是利用 Regex 來將不屬于數(shù)字的過濾掉。
--------------------------------------------------------------------------------
實(shí)務(wù)上經(jīng)常需要驗(yàn)證的是有小數(shù)點(diǎn)的欄位,網(wǎng)路上搜尋到的一堆是可以輸入「1.2.3456」的這種詭異值,其實(shí)只要小改一下 Regex 就可以驗(yàn)證了。
復(fù)制代碼 代碼如下:
function ValidateFloat(e, pnumber){
if (!/^\d+[.]?\d*$/.test(pnumber)){
$(e).val(/^\d+[.]?\d*/.exec($(e).val()));
}
return false;
}
這樣子就可以輸入整數(shù)也可以輸入一個小數(shù)點(diǎn)
--------------------------------------------------------------------------------
以上就給有需要的朋友使用啦。
因?yàn)橛芯W(wǎng)友說這種玩意兒不需要動用到 jQuery 的確,是不用動用到所以來寫一下 純 javascript 的版本
HTML要有所改變
復(fù)制代碼 代碼如下:
<input type="text" style="ime-mode:disabled" onkeyup="return ValidateNumber(this,value)" />
只能輸入數(shù)字(純 javascript)
復(fù)制代碼 代碼如下:
function ValidateNumber(e, pnumber){
if (!/^\d+$/.test(pnumber)){
e.value = /^\d+/.exec(e.value);}
return false;
}
可以輸入小數(shù)(純 javascript)
復(fù)制代碼 代碼如下:
function ValidateNumber(e, pnumber)
{
if (!/^\d+[.]?\d*$/.test(pnumber))
{
e.value = /^\d+[.]?\d*/.exec(e.value);
}
return false;
}
有網(wǎng)友說他想要限制只有小數(shù)點(diǎn)后一位就好,因此再來小改一下其實(shí)重點(diǎn)只有RegExp要改而已
復(fù)制代碼 代碼如下:
function ValidateFloat2(e, pnumber)
{
if (!/^\d+[.]?[1-9]?$/.test(pnumber))
{
e.value = /\d+[.]?[1-9]?/.exec(e.value);
}
return false;
}
如果你是用萬惡的IE那當(dāng)你一開始就輸入非數(shù)字的時候就會送你一個討厭的null因此又要改寫成這樣過濾掉
復(fù)制代碼 代碼如下:
if (!/^\d+$/.test(pnumber))
{
var newValue = /^\d+/.exec(e.value);
if (newValue != null)
{
e.value = newValue;
}
else
{
e.value = "";
}
}
return false;
相關(guān)文章
JavaScript判斷數(shù)組的方法總結(jié)與推薦
這篇文章主要給大家介紹了關(guān)于JavaScript判斷數(shù)組方法的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-02-02
javascript 動態(tài)創(chuàng)建表格
這篇文章主要介紹了javascript 動態(tài)創(chuàng)建表格,需要的朋友可以參考下2015-01-01
JS簡單實(shí)現(xiàn)多級Select聯(lián)動菜單效果代碼
這篇文章主要介紹了JS簡單實(shí)現(xiàn)多級Select聯(lián)動菜單效果代碼,涉及JavaScript數(shù)組元素的遍歷及動態(tài)設(shè)置select的實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-09-09
ES6新特性二:Iterator(遍歷器)和for-of循環(huán)詳解
這篇文章主要介紹了ES6新特性二:Iterator(遍歷器)和for-of循環(huán),結(jié)合實(shí)例形式分析了ES6中Iterator(遍歷器)和for-of循環(huán)遍歷操作的相關(guān)實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下2017-04-04
在TypeScript中迭代對象鍵Object.keys不起作用的原因和解決方案
在TypeScript中迭代對象鍵object?keys可能是一場噩夢,以下是我所知道的所有解決方案,文中有詳細(xì)的代碼示例供大家參考,具有一定的參考價值,需要的朋友可以參考下2023-10-10
利用Math.js解決JS計(jì)算小數(shù)精度丟失問題
電商系統(tǒng)中訂單、庫存中有數(shù)字等加減乘除算術(shù),下面這篇文章主要給大家介紹了關(guān)于利用Math.js解決JS計(jì)算小數(shù)精度丟失問題的相關(guān)資料,mathjs是一個前端在計(jì)算上面必定會用到的類庫,需要的朋友可以參考下2022-04-04
在 JavaScript 中保留小數(shù)點(diǎn)后兩位的方法
在 JavaScript 中,有多種方法可以保留小數(shù)點(diǎn)后兩位,本文給大家分享比較常用的方法,文末給大家介紹了實(shí)現(xiàn)數(shù)據(jù)格式化保留兩位小數(shù)的多種方法,感興趣的朋友一起看看吧2023-10-10

