Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.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 - Fatal编程技术网

Android 检测是否输入了手机号码或电子邮件

Android 检测是否输入了手机号码或电子邮件,android,Android,我有一个情况,用户将输入电子邮件或电话号码登录到应用程序,只有一个edittext提供,如在paytm 我需要检测输入的是电子邮件还是电话号码,以便正确设置服务器 如何检测用户输入的号码或电子邮件您可以做的一件事是检查它是否是电子邮件地址,然后检查它是否是有效的电话号码。我会像这样使用内置的Android功能: boolean isEmailValid(CharSequence email) { return Patterns.EMAIL_ADDRESS.matcher(email).ma

我有一个情况,用户将输入电子邮件或电话号码登录到应用程序,只有一个edittext提供,如在paytm

我需要检测输入的是电子邮件还是电话号码,以便正确设置服务器
如何检测用户输入的号码或电子邮件

您可以做的一件事是检查它是否是电子邮件地址,然后检查它是否是有效的电话号码。我会像这样使用内置的Android功能:

boolean isEmailValid(CharSequence email) {
   return Patterns.EMAIL_ADDRESS.matcher(email).matches();
}
如果返回false,请检查它是否是有效的电话号码(Patterns.phone)

如果其中一个返回true,那么您就知道它是哪一个。如果两者都不为真,则为无效条目


有关和匹配的详细信息。

一对正则表达式

电邮:

电话:

更简单的方法可能与您所想的完全相同:

  • 修剪前导和尾随空格

  • 在任何其他字符串对之间查找
    @
    字符-如果是,则假设它是电子邮件

  • 否则,对括号、破折号、空格和点进行一些基本的删除。如果剩下的是所有的号码,那可能是一个电话号码

  • 无论您如何解析和检测字符串作为电子邮件与电话号码,在序列中的某个位置,您必须通过拨打或邮寄内容来验证这些字符串是否合法。

    查看此链接


    如果电子邮件的手机有效,您可以设置条件。

    如果它不包含
    @
    则是一个电话号码。但我认为更好的做法是在两个字段之间都显示“或”,并让用户决定是否要填写电话、电子邮件或两者。如果您使用android,请使用android方式:)这就是为什么我喜欢@wblaschko的答案