簡體   English   中英

正則表達式以匹配所有電話號碼

[英]Regular expression to match all phone numbers

我嘗試將電話號碼與Android在Patterns.Phone提供的正則表達式進行匹配,這可以匹配很多非電話號碼的東西。我還嘗試過使用:

(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?

但是,我發現測試並非對所有輸入都成功。我想使用正則表達式驗證以下輸入:

  67450450
  +9144-27444444
  27444444 
  27470570
  +12142261347
  +61406366180
  0891 2577456
  2577456
  +91 9550461668
  9550461668
  03-1234567  
  1860 425 3330 

此處基本上支持任何nymber格式: WTND

you can use the following code to check phone #:

    private boolean validPhone(String phone) {
        Pattern pattern = Patterns.PHONE;
        return pattern.matcher(phone).matches();
    }



if(validPhone("67450450")){
  Toast.makeText(this,"The phone number is valid");
}
 else
{
  Toast.makeText(this,"The phone number is not valid");
}

這不是干凈/高效的方法,只是為了匹配示例數據而被組合在一起:

\b\d{7,10}|\+\d{4}-\d{8}|\+\d{11}|\d{4}\s\d{7}|\+\d{2}\s\d{10}|\d{2}-\d{7}|\d{4}\s\d{3}\s\d{4}\b

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM