想检查电话号码的前缀是否有效?

时间:2017-05-19 09:27:00

标签: java android

所以在我的程序中,用户必须注册,其中一个要输入的字段是电话号码。

我想检查他们输入的前3个号码是否有效

if (TextUtils.isEmpty(PhoneNumber) || PhoneNumber != "055, 050, 056, 052") {
     PhoneNumber.setError("Please enter a valid phone number")
     return;`
}

这是我的代码,但它引发了很多错误,有人可以帮我解决这个问题吗?

6 个答案:

答案 0 :(得分:0)

StyleSheet错了。

您可以创建一个字符串数组并将其存储在那里。  PhoneNumber != "055, 050, 056, 052"

然后检查电话号码是否有效

String okNums = {"055", "050", "056", "052"};

答案 1 :(得分:0)

将您的模式转换为数组并搜索手机是否以任何

开头
String d = "055, 050, 056, 052";
String p = "055 66";
String[] pArr = d.split(",");    
for (String patt : pArr ) {
    System.out.println(patt.trim());
    System.out.println(p.indexOf(patt)==0);
}

答案 2 :(得分:0)

 //Get the string from the edit text by:
     String number = yourEditText.getText().toString();

     if(number != null && number.matches("639[0-9]{9}"))
     //do what you need to do for valid input
     else
     //do what you need to do for invalid input

matches()确保整个字符串(完全)与它所采用的正则表达式相同。 639 [0-9] {9}表示字符串必须从639开始,然后紧跟9个数字(0-9)。例如,如果你想匹配“639”后跟7到9个数字,你可以使用:639 [0-9] {7,9}。正则表达式:

答案 3 :(得分:0)

一个简单的解决方案是.startsWith()

if (!PhoneNumber.startsWith("055") || !PhoneNumber.startsWith("050") || !PhoneNumber.startsWith("056") || !PhoneNumber.startsWith("052")) {
    // does not match
}

另一种选择是使用正则表达式

if (!PhoneNumber.matches("^(055|050|056|052)\d+$")){
    // does not match
}

答案 4 :(得分:0)

你做的最糟糕的事情就是你的比较。当你需要与几个值进行比较时,你不能这样比较。相反,您必须使用类似List#contains方法的内容来检查您是否PhoneNumber

    String[] check = {"055", "050", "056", "052" };

    if (TextUtils.isEmpty(PhoneNumber) || Arrays.asList(check).contains(PhoneNumber.getText().toString())) {   

     PhoneNumber.setError("Please enter a valid phone number")
     return;

    }

答案 5 :(得分:0)

好吧,根据我的理解,这里是一个解决方案,如果电话号码是一个完整的字符串,你可以使用这个提取前3个数字:

String s="052487978";
String ex = s.substring(0,3));//052

创建一个int数组并在其中存储所有有效选项 int[] array = {055, 050, 056, 052};并将字符串ex转换为int int value = Integer.parseInt(ex);并检查它是否在包含有效选项的字符串中可用。

boolean contains = IntStream.of(array ).anyMatch(x -> x == value);

如果它是真的,那么它是无效的。