银行卡输入特效 4个加一空格

private static final char kongge = ‘ ‘;private TextWatcher textWatcher=new TextWatcher() {

    //改变之前text长度 int beforeTextLength = 0; //改变之前的文字 private CharSequence beforeChar; //改变之后text长度 int onTextLength = 0; //是否改变空格或光标 boolean isChanged = false; // 记录光标的位置 int location = 0;    private char[] tempChar;    private StringBuffer buffer = new StringBuffer(); //已有空格数量 int konggeNumberB = 0;

 @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) {        beforeTextLength = s.length();        if (buffer.length() > 0) {            buffer.delete(0, buffer.length()); }        konggeNumberB = 0;        for (int i = 0; i < s.length(); i++) {            if (s.charAt(i) == ‘ ‘) {                konggeNumberB++; }        }    }

    @Override public void onTextChanged(CharSequence s, int start, int before, int count) {

        onTextLength = s.length(); buffer.append(s.toString());        if (onTextLength == beforeTextLength || onTextLength <= 3 || isChanged) {            isChanged = false;            return; }        isChanged = true;

 }

    @Override public void afterTextChanged(Editable s) {        if (isChanged) {            location = yourCardNumEd.getSelectionEnd();            int index = 0;            while (index < buffer.length()) {                if (buffer.charAt(index) == kongge) {                    buffer.deleteCharAt(index); } else {                    index++; }            }            index = 0;            int konggeNumberC = 0;            while (index < buffer.length()) {                if ((index == 4 || index == 9 || index == 14 || index == 19)) {                    buffer.insert(index, kongge); konggeNumberC++; }                index++; }            if (konggeNumberC > konggeNumberB) {                location += (konggeNumberC - konggeNumberB); }

            tempChar = new char[buffer.length()]; buffer.getChars(0, buffer.length(), tempChar, 0); String str = buffer.toString();            if (location > str.length()) {                location = str.length(); } else if (location < 0) {                location = 0; }

            yourCardNumEd.setText(str); Editable etable = yourCardNumEd.getText();            if (location>20){                ToastUtil.ToastShow("最多才能输入20位");                return; }

            Selection.setSelection(etable, location);

 isChanged = false; }    }

};
时间: 2024-08-01 22:42:00

银行卡输入特效 4个加一空格的相关文章

格式化数字(每几个数字后加一个空格)

onInput = ({ detail }) => { const value = detail.value; // 输入的字符串 const newValue = value.replace(/([^0-9])/g, ''); // 只允许输入数字 const formatValue = newValue.replace(/(\d{4})(?=\d)/g, '$1 '); // 每4个数字后面加一个空格 const inputLen = this.getOriginValue().length

从输入URL到页面加载发生了什么

从输入URL到页面加载发生了什么 转自: https://segmentfault.com/a/1190000006879700 作者写得很不错,作者忽略了的,我加了上去,完善了一些,如get与post的区别等 总体来说分为以下几个过程: DNS解析 TCP连接 发送HTTP请求 服务器处理请求并返回HTTP报文 浏览器解析渲染页面 连接结束 1.DNS解析 DNS解析的过程就是寻找哪台机器上有你需要资源的过程.当你在浏览器中输入一个地址时,例如www.baidu.com,其实不是百度网站真正意

【转】 从输入 URL 到页面加载完成的过程中都发生了什么事情?

该问题总结 一. 往浏览器输入URL后给你一个页面,你天天在使用的东西,学过计算机网络的知道是怎么回事,就DNS解析然后页面的回馈,不过要讲好还是有难度. 之前fex团队的nwind专门写过这个问题的博客: http://fex.baidu.com/blog/2014/05/what-happen/ 厉害的地方是将整个计算机体系和硬件都涉及进来,很广很深,太强大了. 然后找到一个StackOverFlow的答案: what happens when you type in a URL in br

从输入URL 到页面加载完成的过程

转载自:http://www.tuicool.com/articles/V7JN32Z 根据 URL 请求页面过程 说实话,这类文章网上一抓一大把,而我仍想写这篇博客,一方面是想再仔细缕一下这个过程,另一方面是希望用清晰的语言和结构来解释,也算是小小地挑战一下自己. 过程概述 浏览器查找域名对应的 IP 地址: 浏览器根据 IP 地址与服务器建立 socket 连接: 浏览器与服务器通信: 浏览器请求,服务器处理请求: 浏览器与服务器断开连接. 天啦撸,结束了?也太简单了吧...各位看官,不急,

从输入 URL 到页面加载完成的过程中都发生了什么(转)

从输入 URL 到页面加载完成的过程中都发生了什么 过程描述 浏览器查找域名对应的 IP 地址: 浏览器根据 IP 地址与服务器建立 socket 连接: 浏览器与服务器通信: 浏览器请求,服务器处理请求: 浏览器与服务器断开连接. 根据域名查找IP地址 概念解析 IP地址:IP协议为互联网上的每一个网络和每一台主机分配的一个逻辑地址.IP地址如同门牌号码,通过 IP地址才能确定一台主机位置.服务器本质也是一台主机,想要访问某个服务器,必须先知道它的IP地址: 域名(HOST):IP 地址由四个

从输入 URL 到页面加载显示完成的过程

前言:"一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么?" 这个问题我想大多数人都不会陌生,好像是前端面试题经常会出现的,在此我也好好梳理梳理了一番,总结成这篇文章,希望能对和我一样在前端道路上奋进的小白们有所帮助,一起学习,交流. 我把这个问题拆解成两个过程: 1. 用户输入 url ---> 客户端(浏览器)拿到服务端的数据 2. 浏览器拿到数据 ---> 呈现页面(也就是浏览器工作过程) 搞清楚这两个过程后,我们也算是完整的回答了前言部分所提的问题

从输入URL到页面加载的全过程

前面的话 本文将详细介绍从输入URL到页面加载的全过程 概述 从输入URL到页面加载的主干流程如下: 1.浏览器构建HTTP Request请求 2.网络传输 3.服务器构建HTTP Response 响应 4.网络传输 5.浏览器渲染页面 构建请求 1.应用层进行DNS解析 通过DNS将域名解析成IP地址.在解析过程中,按照浏览器缓存.系统缓存.路由器缓存.ISP(运营商)DNS缓存.根域名服务器.顶级域名服务器.主域名服务器的顺序,逐步读取缓存,直到拿到IP地址 这里使用DNS预解析,可以根

一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么?

一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了: 1.浏览器补全URL地址 在输入完URL之后,浏览器会自动检查该地址是否完整,例如是否有添加https协议,若发现不完整,会自动补全. 2.向DNS查询IP地址 每个域名都对应一个或多个提供相同服务服务器的 IP 地址,只有知道服务器 IP 地址才能建立连接,所以需要通过 DNS 把域名解析成一个 IP 地址. 3.得到IP地址后,建立连接,进行三次握手 即每次建立连接前,客户端和服务端都要先进行三次对话才开始正式传输内容,三次对

(四)从输入URL到页面加载发生了什么

一.从输入URL到页面加载发生了什么 1.在浏览器中输入URL 如:https://www.cnblogs.com/loveapple/ URL分成协议.地址.路径三部分 协议:http.https.ftp 地址:www.cnblogs.com.localhost:4000 路径:/loveapple/ 2.通过DNS解析获得对应的IP地址 DNS作用:将域名转化成IP,域名是方面我们记忆的,但是网络上的资源最终是要通过ip取获得的. DNS查找过程: 浏览器缓存--浏览器会缓存DNS记录一段时