【问题标题】:Regex to validate the length of digits in java正则表达式验证java中数字的长度
【发布时间】:2022-11-01 16:03:00
【问题描述】:

我正在尝试验证电话号码。预期的有效电话号码为 +1 1234567890、+123 1234567890、+1 1234534 等。国家代码后没有括号和空格。我写了如下的正则表达式。但没有按预期工作。任何帮助,将不胜感激。

public class ValidatePhoneNumbers {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
            checkNumber("+5555555555");// not a valid
            checkNumber("+123 1234567890");//should be valid
            checkNumber("+1 1234567890");//should be valid
            checkNumber("+1 12345678905555");//should not be valid

    }

     protected static void checkNumber(String number) {
            System.out.println(number + " : " + (
              Pattern.matches("\\+\\d{1,3}[ ] [0-9]{1,10}$", number) 
                ? "valid" : "invalid"
              )
            );
          }
}

【问题讨论】:

  • +1 1234534 在国家代码后仅 7 位也有效吗?
  • @anubhava 是的。只有超过 10 个是无效的。给出了已编辑的示例代码 cmets。
  • 好的,在这种情况下尝试:^\+(?:\d|\d{3}) \d{1,10}$
  • 另见RegEx Demo
  • @anubhava 你能把它添加为答案吗?它工作正常。

标签: java regex


【解决方案1】:

试试下面 刚刚从您的正则表达式中删除了额外的空间并添加了更多的测试用例。

public static void main(String[] args) {
            // TODO Auto-generated method stub
            
                checkNumber("+5555555555");// not a valid
                checkNumber("+123 1234567890");//should be valid
                checkNumber("+1 1234567890");//should be valid
                checkNumber("+1 12345678905555");//should not be valid
                checkNumber("1234567890");
                checkNumber("91 1234567890");
                checkNumber("1 1234567890");
                checkNumber("1  1234567890");
                checkNumber("+8239 1234567890");

        }

         protected static void checkNumber(String number) {
                System.out.println(number + " : " + (
                  Pattern.matches("\+\d{1,3}[ ][0-9]{1,10}$", number) 
                    ? "valid" : "invalid"
                  )
                );
              }

【讨论】:

    猜你喜欢
    • 2020-06-19
    • 2022-11-23
    • 1970-01-01
    • 2014-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-20
    相关资源
    最近更新 更多