【问题标题】:Need Guidance for mobile number validation [duplicate]需要手机号码验证指南[重复]
【发布时间】:2020-08-12 18:28:56
【问题描述】:

检查输入数字的任务如果仅以 7/8/9 开头并且包含 10 位数字,则它是有效的。 这是代码。 纠正我。我知道我错了。

public boolean validateMobileNumber(long number) throws Exception {

    String num = Long.toString(number);

    String regex = "@\"^[7-9]{10}$";
    if (num.equals(regex))
        return true;
    else
        throw new Exception("Invalid Number");
}

【问题讨论】:

  • “7/8/9”可能会被误解。如果您的意思是“7”、8 或 9,则应该这样说。另外,请说明字符串开头的数字是否可以跟其他字符。
  • 如果 10 位中的 任何 位不是 789,您的正则表达式将失败。这是你的意图吗?
  • 不!它应该以 7 或 8 或 9 开头,总共应包含 10 个数字
  • 那你要^[7-9]\d{9}$
  • 你必须使用String#matches(),而不是equals

标签: java regex


【解决方案1】:

这是因为您使用equals 来检查您的正则表达式的匹配。你将使用matches

String num = "7123456789";
String regex = "^[7-9]\\d{9}$";

System.out.println(num.matches(regex));

【讨论】:

  • 知道了,谢谢队友
猜你喜欢
  • 2018-07-13
  • 1970-01-01
  • 2013-04-14
  • 2017-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-01
  • 2013-12-20
相关资源
最近更新 更多