public class PhoneNumFormatUtil {public static void phoneNumFormat(final EditText editText) {editText.addTextChangedListener(new TextWatcher() {int beforeTextLength = 0;int onTextLength = 0;boolean isChanged = false;int location = 0;  // 记录光标的位置private char[] tempChar;private StringBuffer buffer = new StringBuffer();int konggeNumberB = 0;public void onTextChanged(CharSequence s, int start, int before,int count) {// TODO Auto-generated method stubonTextLength = s.length();buffer.append(s.toString());if (onTextLength == beforeTextLength || onTextLength <= 3|| isChanged) {isChanged = false;return;}isChanged = true;}public void beforeTextChanged(CharSequence s, int start, int count,int after) {// TODO Auto-generated method stubbeforeTextLength = 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++;}}}public void afterTextChanged(Editable s) {// TODO Auto-generated method stubif (isChanged) {location = editText.getSelectionEnd();int index = 0;while (index < buffer.length()) {if (buffer.charAt(index) == ' ') {buffer.deleteCharAt(index);} else {index++;}}index = 0;int konggeNumberC = 0;while (index < buffer.length()) {if ((index == 3 || index == 8)) {buffer.insert(index, ' ');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;}editText.setText(str);Editable etable = editText.getText();Selection.setSelection(etable, location);isChanged = false;}}});}
}

转载于:https://www.cnblogs.com/rh1910362960/p/4250323.html

对11位手机号进行3-4-4格式化相关推荐

  1. python手机号替换_转--Python re模块 验证11位手机号

    一.常用正则表达式符号和语法: '.' 匹配所有字符串,除\n以外 '-' 表示范围[0-9] '*' 匹配前面的子表达式零次或多次.要匹配 * 字符,请使用 \*. '+' 匹配前面的子表达式一次或 ...

  2. 如何用正则验证手机号?11位手机号用正则这样写即可!

    let num = 13456782222;let aa = /^1[35789]\d{9}$/;console.log(aa.test(num)) 以1开头,第二位是35789中的任意一位,以9位数 ...

  3. 验证手机,电话的正则表达式(11位手机号,4位区号,3位区号,7位或者8位手机号码)...

    电话号码正则表达式(支持手机号码,3-4位区号,7-8位直播号码,1-4位分机号) ((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3} ...

  4. java验证11位手机号_JAVA怎样用数组实现输入手机号码为11位

    展开全部 顺手写了32313133353236313431303231363533e58685e5aeb931333332633636个,看下是不是你想要的.public class T4 { Str ...

  5. [转载]正则验证11位手机号

    function isPoneAvailable($poneInput) { var myreg=/^[1][3,4,5,7,8][0-9]{9}$/; if (!myreg.test($poneIn ...

  6. el-input输入11位手机号,边输入边验证手机号码格式

    喉咙痛-不多说,直接上码 den-gdeng-不对,喉咙痛和打字什么关系- 哎-反正多写也无益,少写也许喉咙就好了呢- <template><el-form :rules=" ...

  7. JS实现电话号码校验-----座机:区号-号码、或11位手机号

    在公司做个前端网页,在联系电话的输入框,现在符合条件的才能录入,经测试可用 function isPhoneNum(phone){var testPhone=/^(1(?:3\d|4[4-9]|5[0 ...

  8. 输入框输入手机号,中间插入空格格式化,且限制11位

    <!DOCTYPE html> <html> <head><title>输入手机号限制长度和增加空格示例</title><script ...

  9. 判断是否是标准手机号:1开头,长度11位的纯数字

    public static void main(String[] args) {//手机号:1开头,长度11位的纯数字Scanner sc = new Scanner(System.in);Syste ...

最新文章

  1. 配置LYNC和Exchange 2010 SP1 OWA集成
  2. 在Win8中创建热点,共享网络
  3. Java Web(5) Spring 下使用Junit4 单元测试
  4. 基于OWL-S的Web服务质量本体的描述模式的设计(转)
  5. Python格式化字符串f-string常用用法
  6. 非空验证方法(多值)和BindingResult提示验证信息
  7. 跳转点算法_跳转搜索算法介绍
  8. Hibernate的执行流程——SessionFactory的创建
  9. 初识ObjectBox--Android平台
  10. hibernate 如何安装_python如何搭建WEB服务?
  11. 联想ih81m主板说明书_一体化折叠设计将便捷进行到底!联想ThinkVision 便携显示器评测...
  12. 主板检测卡c5_主板诊断卡怎么使用 主板诊断卡代码含义及处理方法
  13. Macbook Pro 安装 win10 单操作系统
  14. matlab幻方置乱,幻方置乱,magic scrambling,音标,读音,翻译,英文例句,英语词典
  15. 要求返回三位数中的水仙花数 ,数字范围在100-999中。(水仙花数:百位数的3次方+十位数的3次方+个位数的三次方=数字本身)
  16. 【重识前端】闭包与模块
  17. 阿里云年中618钜惠都有哪些活动-详细的为你列举
  18. input标签绑定click事件无反应
  19. php xmp,在jpeg中编写XMP元数据(使用PHP) – 使用单个或多个rdf:描述块
  20. Java-集合当中进行模糊查找

热门文章

  1. servlet和filter的区别
  2. 产品经理必须要了解的经济学原理--“口红效应”
  3. 文明重启服务器维护怎么卡进去,文明重启更新之后进不去,具体玩法介绍
  4. 多层陶瓷电容器用处_陶瓷材料|MLCC片式多层陶瓷电容器应用及制作工艺介绍...
  5. Apache2.4开启php
  6. C#23中设计模型UML图
  7. C#Winform怎么让控件随着主界面大小变化
  8. 剑指offer 合并2个排序的链表
  9. python科学计算笔记(九)pandas中DataFrame数据操作函数
  10. spark中使用categoricalFeaturesInfo来标记分类型变量