zoukankan      html  css  js  c++  java
  • js jq 手机号实现(344) 附带删除功能 jq 实现银行卡没四个数加一个空格 附带删除功能

    js 手机号实现(344)  下面有将正则验证去掉“-” 或“空格”  下一篇博客有单独的删除功能方法

    <!DOCTYPE html>  
    <head>  
        <meta charset="UTF-8">     
        <title>aaa</title>
    </head>  
    <body>  
        <input type="tel" id="phone" onfocus="getCursortPosition(this);" onclick="getCursortPosition(this);" onkeyup="format(this);" maxlength="13"/>  
        <script>  
            var CaretPos = -1;  
            var numLength = 0;  
            function valid(value){  
                if(value && !/^d{0,25}$/g.test(value)){  
                    return value.replace(/[^0-9]/ig, '');  
                }  
                return value;  
            }  
            function format(obj){  
                var value=valid(obj.value);  
                value=value.replace(/s*/g,"");  
                var result=[];  
                for(var i=0;i<value.length;i++){  
                    if(i==3 || i==7){  
                        result.push("-"+value.charAt(i)); //双引号里减号 可替换
                    }else{  
                        result.push(value.charAt(i));  
                    }  
                }  
                obj.value=result.join("");  
                if(obj.value.length < numLength){  
                    if(CaretPos == 10 || CaretPos == 5){  
                        CaretPos -= 2;  
                    } else {  
                        CaretPos -= 1;  
                    }  
                    setCaretPosition(obj, CaretPos);  
                }  
                console.log(CaretPos);  
                if(obj.value.length > numLength){  
                    if(CaretPos == 8 || CaretPos == 3){  
                        CaretPos += 2;  
                    } else {  
                        CaretPos += 1;  
                    }  
                    setCaretPosition(obj, CaretPos);  
                      
                }  
                numLength = obj.value.length;  
            }  
            function getCursortPosition (ctrl) {  
                if (document.selection) {  
                    ctrl.focus ();  
                    var Sel = document.selection.createRange();  
                    Sel.moveStart ('character', -ctrl.value.length);  
                    CaretPos = Sel.text.length;  
                }else if (ctrl.selectionStart || ctrl.selectionStart == '0')  
                    CaretPos = ctrl.selectionStart;  
            }  
            function setCaretPosition(ctrl, pos){  
                if(ctrl.setSelectionRange)  
                {  
                    ctrl.focus();  
                    ctrl.setSelectionRange(pos,pos);  
                }  
                else if (ctrl.createTextRange) {  
                    var range = ctrl.createTextRange();  
                    range.collapse(true);  
                    range.moveEnd('character', pos);  
                    range.moveStart('character', pos);  
                    range.select();  
                }  
            }  
        </script>  
          
          
    </body>  

    jq 实现银行卡没四个数加一个空格  下面有将正则验证去掉“-” 或“空格”

    <!DOCTYPE html>
    <html>
    
    <head lang="en">
      <meta charset="UTF-8">
      <title>银行卡号4位空格</title>
      <script src="http://j2.58cdn.com.cn/js/jquery-1.8.3.js"></script><!--依赖jquery-->
    </head>
    
    <body>
      <input type="tel" placeholder="请输入储蓄卡卡号" name="cardNum">
      <script>
       //监控input事件
        document.querySelector('input[name=cardNum]').addEventListener('input', function() {
            //获取当前光标位置
            var position = this.selectionStart;
            var v = this.value;
            //四个字符加一个空格
            this.value = v.replace(/s/g, '').replace(/(.{4})/g, "$1 ");
            //优化语句:如果当前位置是空格字符,则自动清除掉
            if (this.value.charAt(this.value.length - 1) == ' ') {
                this.value = this.value.substring(0, this.value.length - 1);
            }
            var input = this;
            //重新定位光标位置,start和end都需要设置,不然就是截取片段了
            //countSpace此方法报错,但是不影响使用,我也没解决问题所在,求大神
            input.selectionStart = position + countSpace(this.value, position);
            input.selectionEnd = position + countSpace(this.value, position);
        })
      </script>
    </body>
    
    </html>

    用正则验证去掉“-” 或“空格”

    <html>
    <head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <script type="text/javascript">
    
    var str="187-5332 5214+1000"; // 假如这是你得到的字符串
    // 下面进行替换
    var str_rep = str.replace(/+|-|s+|*|?/g,"");
    console.log(str_rep);
    // 不知道是不是你所说的那样
    
    </script>
    </head>
    </html>
  • 相关阅读:
    安卓开发中Theme.AppCompat.Light的解决方法
    一个监听事件监听多个按钮
    onCreate中的savedInstanceState有何具体作用
    [转]Bundle对象的使用
    【转】Android详细的对话框AlertDialog.Builder使用方法
    实现按两次返回键退出应用(利用安卓按后退键引发的函数)
    [转]解决eclipse连接不到genymotion的问题
    随笔记录九 进程和计划任务任务管理
    linux引导过程和服务控制
    上机作业三 账号管理
  • 原文地址:https://www.cnblogs.com/zc290987034/p/8616234.html
Copyright © 2011-2022 走看看