Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何设置电话号码的格式_Android_Regex - Fatal编程技术网

Android 如何设置电话号码的格式

Android 如何设置电话号码的格式,android,regex,Android,Regex,下面是我尝试做的一个例子: 如果电话号码输入为6123044356,则显示为(612)304-4356。如果客人按退格键5次而不是删除最后输入的4个数字和破折号,则删除最后输入的5个数字。此时的电话号码将显示为(612)30。如果客人再按退格键3次,显示的最后3个数字将被删除,而不是括号。然后,电话号码将显示为61 有什么建议吗?看看图书馆。它有一个AsyOutTypeFormatter类,它将为您处理这个问题 或者,你可以使用基本上做同样的事情。您可以这样使用它: editText.addTe

下面是我尝试做的一个例子:

如果电话号码输入为6123044356,则显示为(612)304-4356。如果客人按退格键5次而不是删除最后输入的4个数字和破折号,则删除最后输入的5个数字。此时的电话号码将显示为(612)30。如果客人再按退格键3次,显示的最后3个数字将被删除,而不是括号。然后,电话号码将显示为61

有什么建议吗?

看看图书馆。它有一个AsyOutTypeFormatter类,它将为您处理这个问题

或者,你可以使用基本上做同样的事情。您可以这样使用它:

editText.addTextChangeListener(new PhoneNumberFormattingTextWatcher());

我会像拨号器那样做。这样做最直观

基本上,当他们打字时,只要一个数字(比如1234567)达到7位数,就可以像123-4567那样为用户拆分。然后,当它达到10位时,123-456780,像(123)456-7890那样对它们进行拆分。当它们达到11位时,将格式更改为1-(234)567-8901

当他们从一个11位数的数字中删除数字时,当数字达到10位数时,立即切换回(123)456-7890。之后,一旦位数小于10,将格式更改回123-456789。保持该格式,直到您将其更改为123456时它们达到六位数

当用户达到一定数量的数字时,通过在可识别形式之间切换数字,它会微妙地提醒用户他们已经创建了一个实数,或者有太多或太少的数字使其成为实数

我建议使用以下阈值:

  • 11位数字:1-(234)567-8901
  • 10位数字:(123)456-7890(任何小于此值的数字看起来都像7位数字,末尾有数字)
  • 7位数字:123-4567(任何小于此数字的数字都会删除破折号)

我希望这是有道理的。我认为用户不应该输入/删除任何额外的字符,如括号和破折号。这一切都应该由应用程序来处理。

我意识到我想知道如何通过使用代码来做到这一点。