1. 程式人生 > >input輸入框,正則格式化手機號(344)

input輸入框,正則格式化手機號(344)

最近有個H5手機頁面需要做344的格式化,以前沒有注意到,寫的時候發現問題很多,然後就找大神的程式碼,抄襲下。

1.html版本

/*input框使用onkeyup事件
 */
function formatPhoneOnkeyUp(mobile){
    var value = mobile.replace(/\D/g, '').substring(0, 11);
    var valueLen = value.length;
    if (valueLen > 3 && valueLen < 8) {
          value = `${value.substr(0
, 3)} ${value.substr(3)}`; } else if (valueLen >= 8) { value = `${value.substr(0, 3)} ${value.substr(3, 4)} ${value.substr(7)}`; } return value; }

2.js版本。jsp可以用。

function formatPhoneOnkeyUp(mobile){
        var value = mobile.replace(/\D/g, '').substring(0, 11);
        var valueLen = value.length;
        if
(valueLen > 3 && valueLen < 8) { value = value.replace(/^(...)/g, "$1 "); } else if (valueLen >= 8) { value = value.replace(/^(...)(....)/g, "$1 $2 "); } return value; }

最近發現這個程式碼有bug,移動游標刪除數字或空格,游標會跳。好心塞。而且因為$符號的問題,方法沒法在jsp裡面使用。 好難過。再加個方法相容jsp


這只是一個簡單的方法,需要用的同學,請結合自己的業務修改。
程式碼是從阿里的一個js組建的原始碼裡抄襲的一點。感覺很簡單的程式碼,但是自己寫的時候就bug很多。對js基礎知識理解不深刻。
這就是差距!!!