输入框,手机号输入,344格式(jQuery和Vue)

一、jquery

function fomatterTel(val, old) {//val: 当前input的值,old: input上次的值
            var str = "";
            var telLen = val.length;
            if (old.length <= telLen) {
                if (telLen === 4 || telLen === 9) {
                    var pre = val.substring(0, telLen-1);
                    var last = val.substr(telLen-1, 1);
                    str = pre + ‘ ‘ + last;
                } else {
                    str = val;
                }
            } else {
                if (telLen === 9 || telLen === 4) {
                    str = val.trim();
                } else {
                    str = val;
                }
            }
            return str;
        }

每次传入新的val和旧的val,就可以啦。

注:

1.input的输入事件最好用oninput事件监听,用keyup的话会有闪烁,不过看不太出来,也能用。jquery的input事件要用bind绑定,不能直接写$("#input1").input这样写会报错, 要写成$("#input1").bind(‘input‘, function(){});

2.old的获取也很简单

var oldTelephone = $("#telephone").val();//输入前先获取一次
 $("#telphone").bind(‘input‘,function () {
        $("#telephone").val(fomatterTel($("#telephone").val(), oldTelephone));
        oldTelephone = $("#telephone").val();//输入后保存old为下一次输入做准备
 });

二、vue中

一样的,只不过vue中更好获取old,data中存入telephone: ‘‘。input的v-model为telephone 。在watch中监听telephone

<input v-model=‘telephone‘>

data () {
    return {
        telephone: ‘‘
    }
},
watch: {
    telephone (newValue, oldValue) {
        if (newValue > oldValue) {
          if (newValue.length === 4 || newValue.length === 9) {
            var pre = newValue.substring(0, newValue.length - 1);
            var last = newValue.substr(newValue.length - 1, 1);
            this.telephone = pre + ‘ ‘ + last;
          } else {
            this.telephone = newValue;
          }
        } else {
          if (newValue.length === 9 || newValue.length === 4) {
            this.telephone = this.telephone.trim();
          } else {
            this.telephone = newValue;
          }
        }
     }
}

来源:https://blog.csdn.net/qq_38627581/article/details/80599485

原文地址:https://www.cnblogs.com/huchong-bk/p/12092331.html

时间: 2024-10-02 03:50:48

输入框,手机号输入,344格式(jQuery和Vue)的相关文章

vue手机号按344分隔,银行卡号每4位空格分隔

实现效果: 1. 手机号输入/粘贴时,不允许输入数字外的其它字符,按344分隔,最大输入11位数字 2. 银行卡号输入/粘贴时,不允许输入数字外的其它字符,每四位用空格分隔 代码: <template> <div class="form"> <p> 手机号: <input v-model="mobile" type="tel" ref="mobile" maxlength="

JS实现在输入框内输入@时,邮箱账号自动补全

<!DOCTYPE HTML> <html lang="en"> <head> <meta charset="utf-8"/> <title>邮箱自动补全</title> <style type="text/css"> .wrap{width:200px;margin:0 auto;} h1{font-size:36px;text-align:center;lin

input输入框限制输入正整数、小数、字母、文字

有的时候需要限制input的输入格式: 例如,输入大于0的正整数 <input onkeyup="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}" onafterpaste="if(this.value.length==1){this.value=this.value.replace(/[^

jQuery到Vue的迁移之路

背景 在前段时间做了L10的某个超复杂超多坑的三端专题之后,组里的小伙伴们一致认为是时候想办法统一一下组里的开发模式了.因为用nie那一套jQuery/zepto(下文jQuery默认包括zepto)的话,十个人就有十种习惯,不管是代码组织也好,页面结构也好,逻辑处理也好-- 其实如果像一般的专题,开发周期短,生命周期短的,用传统的方式开发也还好,不需要后期维护,不需要多人协作.但是,如果项目稍微复杂一点,问题就来了,一碰到需要多人协作的项目,不同的人都有不同的组织代码的习惯,维护起来效率相当低

jquery和vue对比

jquery和vue对比 前言:很多人说jquey和vue没有什么可比的,应该和Angular,React来比吧,我到觉得他们倒没有多大的可比性,都是基于mvvm思想设计的框架,无非就是实现的方式不一样,在不同场景下性能上会有一些差异.然而从jquery到vue或者说是到mvvm的转变则是一个思想想的转变,是将原有的直接操作dom的思想转变到操作数据上去,难道不是一个根本性的改变吗? 1.jquery介绍:想必大家都用过jquery吧,这个曾经也是现在依然最流行的web前端js库,可是现在无论是

JavaScript控制输入框只能输入非负正整数

1.问题背景 问题:一个输入框,输入的是月份,保证输入的内容只能是非负正整数 2.JavaScript代码 function checkMonth() { $("month").keyup(function(){ var temp = $(this).val(); $(this).val(temp.replace(/ \ D/^0/g,'')); })bind("paste",function(){ var temp = $(this).val(); $(this)

-WEBKIT-USER-SELECT:NONE导致输入框无法输入

原文:http://hicc.me/post/webkit-user-select-none-disabling-text-field.html 最近在webview中写页面的时候发现个别Android机型(Google  Nexus,Android 4.2.2)输入框无法输入(但是键盘可以弹起,所以不是网上所说webView.requestFocus(View.FOCUS_DOWN);的问题),经过试错发现是-webkit-user-select:none;所导致的原因. 后来网上再搜,果然有

显示输入框只能输入2位小数

function checkNum(obj) { obj.value = obj.value.replace(/[^\d.]/g, ""); //清除“数字”和“.”以外的字符 obj.value = obj.value.replace(/^\./g, ""); //验证第一个字符是数字而不是. obj.value = obj.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的. obj.value =

X264支持输入NV12格式

X264支持输入NV12格式 一般编码器(例如JM)输入格式是YUV420(YV12),H.264标准也介绍的是YUV420的输入.X264编码器的输入也一般是YUV420格式,但是在内部帧的存储方式上x264采用的是NV12.因为一般编码器对U,V两通道的处理方式是相同的,例如他们有相同的QP,宏块划分,参考帧ID,运动矢量.因此对于U,V两通道的数据读取是一致的,这样NV12 UV两通道交织存储比YV12 UV两通道分别存储在数据访问上具有更高的效率.基于这样的考虑,x264内部帧(包括输入