久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

  • <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="qwawimqqmiuu" 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="qwawimqqmiuu" 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="qwawimqqmiuu" id='7aeES'><tfoot id='7aeES'></tfoot><dl id='7aeES'><fieldset id='7aeES'></fieldset></dl></div>
                          • <bdo id='7aeES'></bdo><ul id='7aeES'></ul>
                            主站蜘蛛池模板: 成年免费大片黄在线观看一级 | 99久久国产综合精品麻豆 | 亚洲精品视频一区二区三区 | 日日草夜夜草 | 丝袜一区二区三区 | 成人av一区二区亚洲精 | 精品在线| 黄色电影在线免费观看 | 欧美综合久久 | 久久成人人人人精品欧 | 久久激情视频 | 国产精品色哟哟网站 | 久久精选 | 日本午夜一区 | 国产精品美女一区二区 | 国产免费一区 | 欧美性生活网 | 国产成人精品一区二区三区 | www日本高清| 国产激情网 | 日韩不卡一二区 | 久久久精品网 | 中文二区 | 自拍 亚洲 欧美 老师 丝袜 | 久久不卡| 日韩资源| 久久久久久久一区 | 日本精品一区二区三区在线观看视频 | 国产精品99久久免费观看 | 成人免费在线观看视频 | 免费观看黄网站 | 日韩久久精品电影 | 亚洲精品久久久蜜桃 | 一级片在线播放 | 亚洲视频手机在线 | 久久躁日日躁aaaaxxxx | 成人免费视频一区 | 中日字幕大片在线播放 | 日本天堂视频在线观看 | 97伦理最新伦理 | 免费污视频 |