js控制手机号码间隔输入

来源:互联网 发布:大芒果魔兽数据库 编辑:程序博客网 时间:2024/06/08 19:22

直接贴代码:



function formatInput(inputElem){    //  var key = event.keyValue;    var ctx = inputElem;    console.log("value:" +ctx.value  + ";ctx:" + ctx);  //  setTimeout(function() {        var curpos = ctx.selectionStart;        var old_value = ctx.value;        ctx.value = paddingSpace(ctx.value.replace(/\D/g,''));        var index_delta = 0        if(old_value[curpos - 1] == ' ') {  // 删除了字符,且光标前面正好是空格,光标自动前进            index_delta = -1        } else {  // 光标前有空格填充时            var old_value_before_cursor = old_value.slice(0, curpos)            var old_value_before_cursor_spaced = paddingSpace(old_value_before_cursor)            index_delta = old_value_before_cursor_spaced.length - old_value_before_cursor.length        }        setCursorPosition(ctx, curpos, index_delta);   // }, 50);    function paddingSpace(str) {        //return str;        return str.replace(/\s/g,'').replace(/(^\d{3})(?=\d)/g,"$1 ").replace(/(\d{4})(?=\d)/g,"$1 ");    };    /** 设置输入域(input/textarea)光标的位置     * @param {HTMLInputElement/HTMLTextAreaElement} elem     * @param {Number} index*/    function setCursorPosition(elem, index, index_delta) {        var val = elem.value;        var len = val.length;        // 超过文本长度直接返回        if (len < index) return;        index += index_delta        elem.focus()        if (elem.setSelectionRange) { // 标准浏览器            elem.setSelectionRange(index, index)        } else { // IE9-            var range = elem.createTextRange();            range.moveStart("character", -len);            range.moveEnd("character", -len);            range.moveStart("character", index);            range.moveEnd("character", 0);            range.select();        }    };
调用此方法,
formatInput(inputElem),inputElem参数为输入框的js对象!

1 0
原创粉丝点击