『JavaScript』限制Input只能輸入數(shù)字實(shí)現(xiàn)思路及代碼
更新時(shí)間:2013年04月22日 09:56:38 作者:
一個(gè)文字方塊必須限制只能輸入數(shù)字(或是小數(shù)點(diǎn))并且要支援 IE 和 Firefox,接下來(lái)為大家介紹下如何解決這個(gè)需求
這玩意很多人寫(xiě)過(guò),但是今天臨時(shí)要用的時(shí)候找不到符合需求的,所以立馬來(lái)寫(xiě)一個(gè),既然都寫(xiě)完了而且還滿符合需求的就放上來(lái)讓大家鞭一鞭。
需求很簡(jiǎn)單,一個(gè)文字方塊必須限制只能輸入數(shù)字(或是小數(shù)點(diǎn))并且要支援 IE 和 Firefox。
HTML的 Input 是這樣下滴
<input type="text" style="ime-mode:disabled" onkeyup="return ValidateNumber($(this),value)" />
•其中那個(gè) Style 是在 IE 瀏覽器下有效用的,可以讓使用者無(wú)法在這文字方塊內(nèi)使用輸入法。
•而onkeyup 則是我們自己撰寫(xiě)的 js 啦,完整的 Code 在下面。
--------------------------------------------------------------------------------
驗(yàn)證只能輸入數(shù)字
function ValidateNumber(e, pnumber){
if (!/^\d+$/.test(pnumber)){
$(e).val(/^\d+/.exec($(e).val()));
}
return false;
}
demo 是利用 Regex 來(lái)將不屬于數(shù)字的過(guò)濾掉。
--------------------------------------------------------------------------------
實(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ù)也可以輸入一個(gè)小數(shù)點(diǎn)
--------------------------------------------------------------------------------
以上就給有需要的朋友使用啦。
因?yàn)橛芯W(wǎng)友說(shuō)這種玩意兒不需要?jiǎng)佑玫?jQuery 的確,是不用動(dòng)用到所以來(lái)寫(xiě)一下 純 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)友說(shuō)他想要限制只有小數(shù)點(diǎn)后一位就好,因此再來(lái)小改一下其實(shí)重點(diǎn)只有RegExp要改而已
function ValidateFloat2(e, pnumber)
{
if (!/^\d+[.]?[1-9]?$/.test(pnumber))
{
e.value = /\d+[.]?[1-9]?/.exec(e.value);
}
return false;
}
如果你是用萬(wàn)惡的IE那當(dāng)你一開(kāi)始就輸入非數(shù)字的時(shí)候就會(huì)送你一個(gè)討厭的null因此又要改寫(xiě)成這樣過(guò)濾掉
if (!/^\d+$/.test(pnumber))
{
var newValue = /^\d+/.exec(e.value);
if (newValue != null)
{
e.value = newValue;
}
else
{
e.value = "";
}
}
return false;
需求很簡(jiǎn)單,一個(gè)文字方塊必須限制只能輸入數(shù)字(或是小數(shù)點(diǎn))并且要支援 IE 和 Firefox。
HTML的 Input 是這樣下滴
復(fù)制代碼 代碼如下:
<input type="text" style="ime-mode:disabled" onkeyup="return ValidateNumber($(this),value)" />
•其中那個(gè) Style 是在 IE 瀏覽器下有效用的,可以讓使用者無(wú)法在這文字方塊內(nèi)使用輸入法。
•而onkeyup 則是我們自己撰寫(xiě)的 js 啦,完整的 Code 在下面。
--------------------------------------------------------------------------------
驗(yàn)證只能輸入數(shù)字
復(fù)制代碼 代碼如下:
function ValidateNumber(e, pnumber){
if (!/^\d+$/.test(pnumber)){
$(e).val(/^\d+/.exec($(e).val()));
}
return false;
}
demo 是利用 Regex 來(lái)將不屬于數(shù)字的過(guò)濾掉。
--------------------------------------------------------------------------------
實(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ù)也可以輸入一個(gè)小數(shù)點(diǎn)
--------------------------------------------------------------------------------
以上就給有需要的朋友使用啦。
因?yàn)橛芯W(wǎng)友說(shuō)這種玩意兒不需要?jiǎng)佑玫?jQuery 的確,是不用動(dòng)用到所以來(lái)寫(xiě)一下 純 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)友說(shuō)他想要限制只有小數(shù)點(diǎn)后一位就好,因此再來(lái)小改一下其實(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;
}
如果你是用萬(wàn)惡的IE那當(dāng)你一開(kāi)始就輸入非數(shù)字的時(shí)候就會(huì)送你一個(gè)討厭的null因此又要改寫(xiě)成這樣過(guò)濾掉
復(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í)現(xiàn)4位隨機(jī)驗(yàn)證碼的生成
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)4位隨機(jī)驗(yàn)證碼的生成,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-01-01按下回車鍵指向下一個(gè)位置的一個(gè)函數(shù)代碼
本篇文章主要是對(duì)按下回車鍵指向下一個(gè)位置的一個(gè)函數(shù)代碼進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-03-03JavaScript Cookie顯示用戶上次訪問(wèn)的時(shí)間和次數(shù)
用cookies記錄用戶的訪問(wèn)時(shí)間與次數(shù),然后再次訪問(wèn)時(shí),在讀取。2009-12-12固定背景實(shí)現(xiàn)的背景滾動(dòng)特效示例分享
固定背景滾動(dòng)特效,使用background-attachment: fixed和導(dǎo)航菜單,頁(yè)面會(huì)非常平滑的滾動(dòng),感興趣的朋友可以參考下哈希望對(duì)你有所幫助2013-05-05js 遞歸json樹(shù)實(shí)現(xiàn)根據(jù)子id查父id的方法分析
這篇文章主要介紹了js 遞歸json樹(shù)實(shí)現(xiàn)根據(jù)子id查父id的方法,結(jié)合實(shí)例形式分析了JavaScript遞歸遍歷json進(jìn)行數(shù)據(jù)查詢的相關(guān)操作技巧,需要的朋友可以參考下2019-11-11javascript性能優(yōu)化之分時(shí)函數(shù)的介紹
本篇文章主要介紹了javascript性能優(yōu)化之分時(shí)函數(shù)的介紹,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03JS Thunk 函數(shù)的含義和用法實(shí)例總結(jié)
這篇文章主要介紹了JS Thunk 函數(shù)的含義和用法,結(jié)合實(shí)例形式總結(jié)分析了JS Thunk 函數(shù)的具體含義、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04