單行 JS 實現移動端金錢格式的輸入規則

2022-03-07 16:25:32 字數 671 閱讀 5781

金錢格式檢驗屬於很普通的需求,記得工作中第一次遇到這個需求的時候,還不太會寫正規表示式,搜到了乙個類似的解決方案,看著正則的文件改成了自己需要的形式。

但是使用者的輸入操作是任意的,只是顯示提示資訊,這種方式雖然可以滿足要求,但是感覺不友好。

其實移動端的很多應用在輸入金錢時都是遮蔽錯誤輸入,只能輸入正確的格式。先看一看金錢格式的輸入規則有哪些:

1. 不能輸入空白字元及字母

2. 只能輸入數字及小數點

3. 首位不能為小數點

4. 小數點只能出現一次

5. 小數點後只有兩位

6. 不能輸入首位是 0 的多位數

看似很簡單的問題,其實要考慮的很周全才可以。但是**可以寫的很簡潔,我費了不少心思摸索出來的。對於校驗部分確實只需要一行

function

moneyformat(str) /g, '.').replace(/^([1-9]\d*|0)(\.\d)(\.|\d)?$/, '$1$2').replace(/^0\d/g, '0');

}

時間不早了,就寫這麼多吧,最後貼上我在 codepen 寫的 demo,希望能幫到有需要的人。

see the pen moneyformat by zongbin (@nzbin) on codepen.

js 實現單行資料上下移動

部分 是react.js的寫法,但是js部分大部分都是通用的 html部分 上移下移 js 部分 單行資料上移下移功能,多行的話這個方法也許不管用了。movedata status this.state walistdata是陣列,detailsid是單行資料id 唯一的 for let i 0 a...

原生JS實現移動端的輪播效果

首先 我們想實現的效果是在手指按下拖動的時候能夠跟隨移動 無動畫效果 然後鬆開手指後判斷移動的位置 和某乙個值進行比較 當移動位置小於1 3的時候 抬起手指的回到原位 此時也有動畫效果 具體 如下 布局就是簡單的長列形式 讓最外層的banner固定寬多餘的隱藏 ul的寬度這足夠大 通過移動ul的le...

程式設計實現連續輸的格式輸出

程式設計實現 乙個整型陣列如 1,2,3,5,6,2,3,4,5,6,則輸出 1 3,5,6,2 6 include void count data int a,int len else if flag 1 flag 1,表示陣列中相鄰的有兩個連續的數 if flag 1 flag 1,表示陣列中相...