最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決vue 格式化銀行卡(信用卡)每4位一個(gè)符號隔斷的問題

 更新時(shí)間:2018年09月14日 16:13:09   作者:無所事事者愛嘲笑  
這篇文章主要介紹了vue 格式化銀行卡(信用卡)每4位一個(gè)符號隔斷的問題,本文給大家分享了解決方法,需要的朋友可以參考下

問題

在做銀行卡輸入框時(shí)有一個(gè)需求如題,這里舉例用-隔斷

調(diào)查

查看了很多大公司網(wǎng)站的銀行卡輸入,發(fā)現(xiàn)還有有很多缺陷的:
 有的是在中間刪除,光標(biāo)會(huì)跳到最后;
 有的是能刪除掉中間隔斷符的;
 等等,邏輯感覺比較混亂,或者是我不懂他們的高深設(shè)計(jì)吧。

只有支付寶的設(shè)計(jì)感覺是比較合理的,改變了只有輸入框的固有方案,放圖:

上面出現(xiàn)的顯示框不可修改,能清晰看出四位隔斷的格式。

不過為了實(shí)現(xiàn)自己項(xiàng)目只有一個(gè)卡號輸入框的需求,只能硬著頭皮研究了。

解決

將下面的方法稍作修改綁在輸入框的input方法上就ok了。

改動(dòng):獲取你自己的input的dom、賦值時(shí)給你自己的data賦值。

// 格式化卡號顯示,每4位加-
formatCardNumber (cardNum) {
 // 獲取input的dom對象,這里因?yàn)橛玫氖莈lement ui的input,所以需要這樣拿到
 const input = this.$refs.cardInput.$el.getElementsByTagName('input')[0]
 // 獲取當(dāng)前光標(biāo)的位置
 const cursorIndex = input.selectionStart
 // 字符串中光標(biāo)之前-的個(gè)數(shù)
 const lineNumOfCursorLeft = (cardNum.slice(0, cursorIndex).match(/-/g) || []).length
 // 去掉所有-的字符串
 const noLine = cardNum.replace(/-/g, '')
 // 去除格式不對的字符并重新插入-的字符串
 const newCardNum = noLine.replace(/\D+/g, '').replace(/(\d{4})/g, '$1-').replace(/-$/, '')
 // 改后字符串中原光標(biāo)之前-的個(gè)數(shù)
 const newLineNumOfCursorLeft = (newCardNum.slice(0, cursorIndex).match(/-/g) || []).length
 // 光標(biāo)在改后字符串中應(yīng)在的位置
 const newCursorIndex = cursorIndex + newLineNumOfCursorLeft - lineNumOfCursorLeft
 // 賦新值,nextTick保證-不能手動(dòng)輸入或刪除,只能按照規(guī)則自動(dòng)填入
 this.$nextTick(() => {
  this.cardForm.creditCard = newCardNum
  // 修正光標(biāo)位置,nextTick保證在渲染新值后定位光標(biāo)
  this.$nextTick(() => {
   // selectionStart、selectionEnd分別代表選擇一段文本時(shí)的開頭和結(jié)尾位置
   input.selectionStart = newCursorIndex
   input.selectionEnd = newCursorIndex
  })
 })
}

這里就不做封裝了,可自封,例:formatBankCard(dom, dataName, cardNum, breaker)

ps:

1.此方法如果想在中間刪除隔斷符,光標(biāo)會(huì)前移一位(應(yīng)該也算是正常邏輯吧)。

2.這里用的是element ui,長度限制在input上做了,這里不對長度過多贅述,自行處理。

3.這里間隔符是-,相信大家有改變間隔符的需求,只需把方法里五個(gè)位置的-改為自己的符號就好了,注意轉(zhuǎn)義(如空格:將-改為\s)

下面看下sublime中有沒有*.vue文件格式化插件

HTML/CSS/JS Prettify 這個(gè)插件就行, 安裝后 tools->HTML/CSS/JS Prettify->set prettify preference

 在"allowed_file_extensions": ["htm", "html", "xhtml", "shtml", "xml", "svg","vue"] 加上vue就好了

總結(jié)

以上所述是小編給大家介紹的解決vue 格式化銀行卡(信用卡)每4位一個(gè)符號隔斷的問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Vue應(yīng)用中504錯(cuò)誤(Gateway timeout)的原因與解決方法

    Vue應(yīng)用中504錯(cuò)誤(Gateway timeout)的原因與解決方法

    在Vue前端應(yīng)用中遇到504代理錯(cuò)誤通常是由于請求在到達(dá)服務(wù)器之前超時(shí),504錯(cuò)誤表示網(wǎng)關(guān)超時(shí),可能由后端服務(wù)響應(yīng)慢、網(wǎng)絡(luò)問題、代理配置錯(cuò)誤、請求負(fù)載過大、前端請求超時(shí)設(shè)置不當(dāng)、服務(wù)器資源不足或第三方服務(wù)問題引起
    2024-09-09
  • vue項(xiàng)目運(yùn)行或打包時(shí),頻繁內(nèi)存溢出情況問題

    vue項(xiàng)目運(yùn)行或打包時(shí),頻繁內(nèi)存溢出情況問題

    這篇文章主要介紹了vue項(xiàng)目運(yùn)行或打包時(shí),頻繁內(nèi)存溢出情況的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • 基于Vue2實(shí)現(xiàn)動(dòng)態(tài)折扣表格

    基于Vue2實(shí)現(xiàn)動(dòng)態(tài)折扣表格

    這篇文章主要為大家詳細(xì)介紹了如何基于Vue2實(shí)現(xiàn)動(dòng)態(tài)折扣表格,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • vue.js 獲取當(dāng)前自定義屬性值

    vue.js 獲取當(dāng)前自定義屬性值

    本篇文章主要介紹了vue.js 獲取當(dāng)前自定義屬性值,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • Vue如何實(shí)現(xiàn)分頁功能代碼實(shí)例

    Vue如何實(shí)現(xiàn)分頁功能代碼實(shí)例

    這篇文章主要給大家介紹了關(guān)于Vue如何實(shí)現(xiàn)分頁功能的相關(guān)資料,Vue分頁功能的實(shí)現(xiàn)需要前端和后端共同配合完成,文中通過代碼實(shí)例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-09-09
  • Element-plus封裝搜索組件的實(shí)現(xiàn)

    Element-plus封裝搜索組件的實(shí)現(xiàn)

    在后臺(tái)管理系統(tǒng)中,經(jīng)常需要在多個(gè)頁面中使用搜索功能,本文就來介紹一下Element-plus封裝搜索組件的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-08-08
  • vite項(xiàng)目如何從0開始配置eslint

    vite項(xiàng)目如何從0開始配置eslint

    這篇文章主要介紹了vite項(xiàng)目如何從0開始配置eslint問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • vue實(shí)現(xiàn)復(fù)制文字復(fù)制圖片實(shí)例詳解

    vue實(shí)現(xiàn)復(fù)制文字復(fù)制圖片實(shí)例詳解

    這篇文章主要為大家介紹了vue實(shí)現(xiàn)復(fù)制文字復(fù)制圖片實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • el-select 數(shù)據(jù)回顯,只顯示value不顯示lable問題

    el-select 數(shù)據(jù)回顯,只顯示value不顯示lable問題

    這篇文章主要介紹了el-select 數(shù)據(jù)回顯,只顯示value不顯示lable問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Vue?組件上的v-model雙向綁定原理解析

    Vue?組件上的v-model雙向綁定原理解析

    這篇文章主要介紹了Vue?組件上的v-model雙向綁定原理,從本文的學(xué)習(xí)可以知道組件上v-model指令的本質(zhì)也是生成了value屬性和input事件,具體實(shí)例代碼跟隨小編一起看看吧
    2022-05-05

最新評論

榕江县| 佛坪县| 新和县| 砚山县| 龙山县| 建宁县| 吴江市| 吉木萨尔县| 深水埗区| 同心县| 宜宾市| 昆山市| 慈利县| 定远县| 苍溪县| 武安市| 通辽市| 招远市| 聂拉木县| 津市市| 周至县| 阜新市| 德清县| 电白县| 永新县| 佛冈县| 丁青县| 遵化市| 普安县| 旺苍县| 图们市| 长岭县| 永胜县| 明溪县| 广河县| 朝阳市| 洛川县| 泰宁县| 都兰县| 灵宝市| 新巴尔虎左旗|