pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

  • <tfoot id='rf62s'></tfoot>

    <small id='rf62s'></small><noframes id='rf62s'>

    <i id='rf62s'><tr id='rf62s'><dt id='rf62s'><q id='rf62s'><span id='rf62s'><b id='rf62s'><form id='rf62s'><ins id='rf62s'></ins><ul id='rf62s'></ul><sub id='rf62s'></sub></form><legend id='rf62s'></legend><bdo id='rf62s'><pre id='rf62s'><center id='rf62s'></center></pre></bdo></b><th id='rf62s'></th></span></q></dt></tr></i><div class="nh5vp9f" id='rf62s'><tfoot id='rf62s'></tfoot><dl id='rf62s'><fieldset id='rf62s'></fieldset></dl></div>

    • <bdo id='rf62s'></bdo><ul id='rf62s'></ul>

      1. <legend id='rf62s'><style id='rf62s'><dir id='rf62s'><q id='rf62s'></q></dir></style></legend>

        使用純 JavaScript 將電話號碼格式化為用戶類型

        Format a phone number as a user types using pure JavaScript(使用純 JavaScript 將電話號碼格式化為用戶類型)
          <bdo id='a6lUi'></bdo><ul id='a6lUi'></ul>

          <small id='a6lUi'></small><noframes id='a6lUi'>

          1. <tfoot id='a6lUi'></tfoot>

              • <legend id='a6lUi'><style id='a6lUi'><dir id='a6lUi'><q id='a6lUi'></q></dir></style></legend>

                    <tbody id='a6lUi'></tbody>
                  <i id='a6lUi'><tr id='a6lUi'><dt id='a6lUi'><q id='a6lUi'><span id='a6lUi'><b id='a6lUi'><form id='a6lUi'><ins id='a6lUi'></ins><ul id='a6lUi'></ul><sub id='a6lUi'></sub></form><legend id='a6lUi'></legend><bdo id='a6lUi'><pre id='a6lUi'><center id='a6lUi'></center></pre></bdo></b><th id='a6lUi'></th></span></q></dt></tr></i><div class="xph5txb" id='a6lUi'><tfoot id='a6lUi'></tfoot><dl id='a6lUi'><fieldset id='a6lUi'></fieldset></dl></div>
                  本文介紹了使用純 JavaScript 將電話號碼格式化為用戶類型的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                  問題描述

                  限時送ChatGPT賬號..

                  我的文檔正文中有一個輸入字段,我需要在用戶鍵入時對其進行格式化.它應該在區號周圍加上括號,然后在三到四位數字之間加上一個破折號.

                  I've got an input field in the body of my document, and I need to format it as the user types. It should have parenthesis around the area code and a dash between the three and four digits after that.

                  例如:(123) 456 - 7890

                  當用戶鍵入時,它應該類似于:

                  As the user types it should look something like:

                  (12
                  (123)
                  (123) 456
                  (123) 456 - 78
                  (123) 456 - 7890

                  推薦答案

                  新的 ES6 答案

                  您仍然可以使用一些簡單的 JavaScript 來做到這一點.

                  HTML

                  New ES6 Answer

                  You can still do this using some simple JavaScript.

                  HTML

                  <input id="phoneNumber" maxlength="16" />
                  

                  JavaScript (ES6)

                  const isNumericInput = (event) => {
                      const key = event.keyCode;
                      return ((key >= 48 && key <= 57) || // Allow number line
                          (key >= 96 && key <= 105) // Allow number pad
                      );
                  };
                  
                  const isModifierKey = (event) => {
                      const key = event.keyCode;
                      return (event.shiftKey === true || key === 35 || key === 36) || // Allow Shift, Home, End
                          (key === 8 || key === 9 || key === 13 || key === 46) || // Allow Backspace, Tab, Enter, Delete
                          (key > 36 && key < 41) || // Allow left, up, right, down
                          (
                              // Allow Ctrl/Command + A,C,V,X,Z
                              (event.ctrlKey === true || event.metaKey === true) &&
                              (key === 65 || key === 67 || key === 86 || key === 88 || key === 90)
                          )
                  };
                  
                  const enforceFormat = (event) => {
                      // Input must be of a valid number format or a modifier key, and not longer than ten digits
                      if(!isNumericInput(event) && !isModifierKey(event)){
                          event.preventDefault();
                      }
                  };
                  
                  const formatToPhone = (event) => {
                      if(isModifierKey(event)) {return;}
                  
                      const input = event.target.value.replace(/D/g,'').substring(0,10); // First ten digits of input only
                      const areaCode = input.substring(0,3);
                      const middle = input.substring(3,6);
                      const last = input.substring(6,10);
                  
                      if(input.length > 6){event.target.value = `(${areaCode}) ${middle} - ${last}`;}
                      else if(input.length > 3){event.target.value = `(${areaCode}) ${middle}`;}
                      else if(input.length > 0){event.target.value = `(${areaCode}`;}
                  };
                  
                  const inputElement = document.getElementById('phoneNumber');
                  inputElement.addEventListener('keydown',enforceFormat);
                  inputElement.addEventListener('keyup',formatToPhone);
                  

                  如果你想擺弄它:
                  https://jsfiddle.net/rafj3md0/

                  免責聲明:
                  值得注意的是,如果您嘗試修改數字的中間,這會有點奇怪,因為瀏覽器在設置元素值后處理插入符號位置的方式.解決這個問題是可行的,但需要比我現在更多的時間,而且有一些圖書館可以處理這樣的事情.

                  Disclaimer:
                  It's worth noting this gets a little weird if you attempt to modify the middle of the number because of the way browsers handle caret placement after you set an element's value. Solving that problem is doable, but would require more time than I have right now, and there are libraries out there that handle things like that.

                  如果您的 HTML 看起來像:
                  <輸入類型=文本"id="phoneNumber"/>

                  If your HTML looks like:
                  <input type="text" id="phoneNumber"/>

                  您的 JavaScript 函數可以是:

                  Your JavaScript function can simply be:

                  // A function to format text to look like a phone number
                  function phoneFormat(input){
                          // Strip all characters from the input except digits
                          input = input.replace(/D/g,'');
                          
                          // Trim the remaining input to ten characters, to preserve phone number format
                          input = input.substring(0,10);
                  
                          // Based upon the length of the string, we add formatting as necessary
                          var size = input.length;
                          if(size == 0){
                                  input = input;
                          }else if(size < 4){
                                  input = '('+input;
                          }else if(size < 7){
                                  input = '('+input.substring(0,3)+') '+input.substring(3,6);
                          }else{
                                  input = '('+input.substring(0,3)+') '+input.substring(3,6)+' - '+input.substring(6,10);
                          }
                          return input; 
                  }
                  

                  當然,您需要一個事件監聽器:

                  Of course, you'll need an event listener:

                  document.getElementById('phoneNumber').addEventListener('keyup',function(evt){
                          var phoneNumber = document.getElementById('phoneNumber');
                          var charCode = (evt.which) ? evt.which : evt.keyCode;
                          phoneNumber.value = phoneFormat(phoneNumber.value);
                  });
                  

                  除非您可以將電話號碼存儲為格式化字符串(我不推薦這樣做),否則您需要在提交值之前清除非數字字符:
                  document.getElementById('phoneNumber').value.replace(/D/g,'');

                  And unless you're okay storing phone numbers as formatted strings (I don't recommend this), you'll want to purge the non-numeric characters before submitting the value with something like:
                  document.getElementById('phoneNumber').value.replace(/D/g,'');

                  如果您想通過獎勵輸入過濾查看此操作,請查看此小提琴:
                  http://jsfiddle.net/rm9vg16m/

                  If you'd like to see this in action with bonus input filtering, check out this fiddle:
                  http://jsfiddle.net/rm9vg16m/

                  // Format the phone number as the user types it
                  document.getElementById('phoneNumber').addEventListener('keyup', function(evt) {
                    var phoneNumber = document.getElementById('phoneNumber');
                    var charCode = (evt.which) ? evt.which : evt.keyCode;
                    phoneNumber.value = phoneFormat(phoneNumber.value);
                  });
                  
                  // We need to manually format the phone number on page load
                  document.getElementById('phoneNumber').value = phoneFormat(document.getElementById('phoneNumber').value);
                  
                  // A function to determine if the pressed key is an integer
                  function numberPressed(evt) {
                    var charCode = (evt.which) ? evt.which : evt.keyCode;
                    if (charCode > 31 && (charCode < 48 || charCode > 57) && (charCode < 36 || charCode > 40)) {
                      return false;
                    }
                    return true;
                  }
                  
                  // A function to format text to look like a phone number
                  function phoneFormat(input) {
                    // Strip all characters from the input except digits
                    input = input.replace(/D/g, '');
                  
                    // Trim the remaining input to ten characters, to preserve phone number format
                    input = input.substring(0, 10);
                  
                    // Based upon the length of the string, we add formatting as necessary
                    var size = input.length;
                    if (size == 0) {
                      input = input;
                    } else if (size < 4) {
                      input = '(' + input;
                    } else if (size < 7) {
                      input = '(' + input.substring(0, 3) + ') ' + input.substring(3, 6);
                    } else {
                      input = '(' + input.substring(0, 3) + ') ' + input.substring(3, 6) + ' - ' + input.substring(6, 10);
                    }
                    return input;
                  }

                  Enter a phone number here: <input type="text" id="phoneNumber" onkeypress="return numberPressed(event);" />

                  這篇關于使用純 JavaScript 將電話號碼格式化為用戶類型的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

                  【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

                  相關文檔推薦

                  Browserify, Babel 6, Gulp - Unexpected token on spread operator(Browserify,Babel 6,Gulp - 傳播運算符上的意外令牌)
                  Is it possible to pass a flag to Gulp to have it run tasks in different ways?(是否可以將標志傳遞給 Gulp 以使其以不同的方式運行任務?)
                  Why do we need to install gulp globally and locally?(為什么我們需要在全局和本地安裝 gulp?)
                  How to run Gulp tasks sequentially one after the other(如何一個接一個地依次運行 Gulp 任務)
                  Visual Studio 2015 crashes when opening Javascript files(打開 Javascript 文件時 Visual Studio 2015 崩潰)
                  Detect FLASH plugin crashes(檢測 FLASH 插件崩潰)

                • <tfoot id='7aeES'></tfoot>

                    <tbody id='7aeES'></tbody>
                • <small id='7aeES'></small><noframes id='7aeES'>

                      <legend id='7aeES'><style id='7aeES'><dir id='7aeES'><q id='7aeES'></q></dir></style></legend>

                        <i id='7aeES'><tr id='7aeES'><dt id='7aeES'><q id='7aeES'><span id='7aeES'><b id='7aeES'><form id='7aeES'><ins id='7aeES'></ins><ul id='7aeES'></ul><sub id='7aeES'></sub></form><legend id='7aeES'></legend><bdo id='7aeES'><pre id='7aeES'><center id='7aeES'></center></pre></bdo></b><th id='7aeES'></th></span></q></dt></tr></i><div class="5xnv5xr" id='7aeES'><tfoot id='7aeES'></tfoot><dl id='7aeES'><fieldset id='7aeES'></fieldset></dl></div>
                          • <bdo id='7aeES'></bdo><ul id='7aeES'></ul>
                            主站蜘蛛池模板: 大米加工设备|大米加工机械|碾米成套设备|大米加工成套设备-河南成立粮油机械有限公司 | 档案密集架,移动密集架,手摇式密集架,吉林档案密集架-厂家直销★价格公道★质量保证 | 大倾角皮带机-皮带输送机-螺旋输送机-矿用皮带输送机价格厂家-河南坤威机械 | 胜为光纤光缆_光纤跳线_单模尾纤_光纤收发器_ODF光纤配线架厂家直销_北京睿创胜为科技有限公司 - 北京睿创胜为科技有限公司 | 国际线缆连接网 - 连接器_线缆线束加工行业门户网站 | 分类168信息网 - 分类信息网 免费发布与查询 | 液氮罐_液氮容器_自增压液氮罐_杜瓦瓶_班德液氮罐厂家 | 车件|铜件|车削件|车床加工|五金冲压件-PIN针,精密车件定制专业厂商【东莞品晔】 | 耐磨焊丝,堆焊焊丝,耐磨药芯焊丝,碳化钨焊丝-北京耐默公司 | 10吨无线拉力计-2吨拉力计价格-上海佳宜电子科技有限公司 | 精密钢管,冷拔精密无缝钢管,精密钢管厂,精密钢管制造厂家,精密钢管生产厂家,山东精密钢管厂家 | 广州二手电缆线回收,旧电缆回收,广州铜线回收-广东益福电缆线回收公司 | 寮步纸箱厂_东莞纸箱厂 _东莞纸箱加工厂-东莞市寮步恒辉纸制品厂 | 北京浩云律师事务所-法律顾问_企业法务_律师顾问_公司顾问 | 掺铥光纤放大器-C/L波段光纤放大器-小信号光纤放大器-合肥脉锐光电技术有限公司 | 车充外壳,车载充电器外壳,车载点烟器外壳,点烟器连接头,旅行充充电器外壳,手机充电器外壳,深圳市华科达塑胶五金有限公司 | 淬火设备-钎焊机-熔炼炉-中频炉-锻造炉-感应加热电源-退火机-热处理设备-优造节能 | 合金耐磨锤头_破碎机锤头_郑州市德勤建材有限公司 | 雷蒙磨,雷蒙磨粉机,雷蒙磨机 - 巩义市大峪沟高峰机械厂 | 青岛侦探调查_青岛侦探事务所_青岛调查事务所_青岛婚外情取证-青岛狄仁杰国际侦探公司 | 牛奶检测仪-乳成分分析仪-北京海谊| 苏商学院官网 - 江苏地区唯一一家企业家自办的前瞻型、实操型商学院 | 金联宇电缆|广东金联宇电缆厂家_广东金联宇电缆实业有限公司 | 早报网 | 淋巴细胞分离液_口腔医疗器材-精欣华医疗器械(无锡)有限公司 | 浙江清风侠环保设备有限公司| 北京公司注册_代理记账_代办商标注册工商执照-企力宝 | 冷凝水循环试验箱-冷凝水试验箱-可编程高低温试验箱厂家-上海巨为(www.juweigroup.com) | 防爆暖风机_防爆电暖器_防爆电暖风机_防爆电热油汀_南阳市中通智能科技集团有限公司 | 杰福伦_磁致伸缩位移传感器_线性位移传感器-意大利GEFRAN杰福伦-河南赉威液压科技有限公司 | pbootcms网站模板|织梦模板|网站源码|jquery建站特效-html5模板网 | 全自动过滤器_反冲洗过滤器_自清洗过滤器_量子除垢环_量子环除垢_量子除垢 - 安士睿(北京)过滤设备有限公司 | 高清视频编码器,4K音视频编解码器,直播编码器,流媒体服务器,深圳海威视讯技术有限公司 | 颗粒机,颗粒机组,木屑颗粒机-济南劲能机械有限公司 | 预制围墙_工程预制围墙_天津市瑞通建筑材料有限公司 | 细胞染色-流式双标-试剂盒免费代做-上海研谨生物科技有限公司 | 智能垃圾箱|垃圾房|垃圾分类亭|垃圾分类箱专业生产厂家定做-宿迁市传宇环保设备有限公司 | 橡胶电子拉力机-塑料-微电脑电子拉力试验机厂家-江苏天源 | 全温度恒温培养摇床-大容量-立式-远红外二氧化碳培养箱|南荣百科 | 塑胶地板-商用PVC地板-pvc地板革-安耐宝pvc塑胶地板厂家 | 水冷式工业冷水机组_风冷式工业冷水机_水冷螺杆冷冻机组-深圳市普威机械设备有限公司 |