使用JS判斷並處理輸入框輸入的數字

2021-10-08 20:56:19 字數 2014 閱讀 6004

輸入框裡只能輸入數字和小數,允許負值出現,保留兩位小數。

因為需求是只要失去焦點就自動儲存,所以在js中寫了乙個判斷處理的方法,在鍵盤釋放的時候執行此方法

方法如下:

/**

* liy

* 清理輸入框輸入

* 此方法為逐條驗證,請勿改變驗證清理順序,否則可能出現清除錯誤的情況,產生錯誤資料

* 保留2位小數的驗證0.0和-0.0無法通過此方法驗證,可以在提交方法中判斷

* @param obj

*/function

fornum

(obj)/g,

"-")

;//0開頭的只能輸入乙個0

obj.value = obj.value.

replace

(/^0/g

,"0");

//-0開頭的只能輸入乙個0

obj.value = obj.value.

replace

(/^-0/g

,"-0");

//數字裡面只能有乙個"-",保留第乙個,清除多餘的(清除間隔輸入)

obj.value = obj.value.

replace

("-"

,"$*$").

replace

(/-/g,""

).replace

("$*$"

,"-");

//只能輸入乙個".",連續輸入超過2個,則清除後面的(清除連續輸入)

obj.value = obj.value.

replace

(/\./g

,".");

//驗證輸入順序

obj.value = obj.value.

replace

(/^\./g,""

);//"."開頭,清除

obj.value = obj.value.

replace

(/^-\./g

,"-");

//"-."開頭,清除"."

obj.value = obj.value.

replace

(/-\./g

,".");

//"-.",清除"-"

obj.value = obj.value.

replace

(/\.-/g

,".");

//".-",清除"-"

//數字裡面只能有乙個".",保留第乙個,清除多餘的(清除間隔輸入)

obj.value = obj.value.

replace

("."

,"$#$").

replace

(/\./g,""

).replace

("$#$"

,".");

var num = obj.value;

var n = num.

search

("-");

if(n >0)

if(/^0[1-9]+/

.test

(num))if

(/^-0[1-9]+/

.test

(num))if

(/^-0\.00+/

.test

(num))if

(/^0\.00+/

.test

(num)

)//只能輸入兩位小數

obj.value = obj.value.

replace

(/^(\-)*(\d+)\.(\d\d).*$/

,'$1$2.$3');

}

以上的判斷並不全面,因為可以保留2位小數,所以0.0或者-0.0這種就無法用此方法判斷,只能在提交儲存時去做乙個判斷處理,自己研究的方法,有不足的地方或者可以改進的地方希望各位大神給予指導。

input輸入框js處理彙總

1.取消按鈕按下時的虛線框 在input裡新增屬性值 hidefocus 或者 hidefocus true 2.唯讀文字框內容 在input裡新增屬性值 readonly 3.防止退後清空的text文件 可把style內容做做為類引用 4.enter鍵可以讓游標移到下乙個輸入框 5.只能為中文 有...

JS輸入框校驗

想做姓名輸入的js判斷是否是中文,但是網上找的很多是源於一篇文章的,判斷中文的正則式不對,後來找到乙個可以準確判斷了,但是是監測裡面有中文的就行,跟我想要的只能輸入中文的意思相左,所以又找了下面的 js 控制文字框只能輸入數字 input nkeyup value value.replace 0 9...

Js驗證輸入框

validate.js html頁面使用情況 驗證字段是否唯一 欄位的唯一性校驗 validtype unique findvalidationmarkernumber.do add id true,輸入值已存在 第乙個引數 請求的url 第二個引數 add update 新增為add,修改為upd...