驗證美國電話號碼
以下正規表示式:
us.phones.regex <- "^\\s*(\\+\\s*1(-?|\\s+))*[0-9]{3}\\s*-?\\s*[0-9]{3}\\s*-?\\s*[0-9]{4}$"
驗證電話號碼:+1-xxx-xxx-xxxx
,包括每組數字開頭/結尾的可選前導/尾隨空白,但不在中間,例如:+1-xxx-xxx-xx xx
無效。-
分隔符可以用空格替換:xxx xxx xxx
或不用分隔符:xxxxxxxxxx
。+1
字首是可選的。
我們來檢查一下:
us.phones.regex <- "^\\s*(\\+\\s*1(-?|\\s+))*[0-9]{3}\\s*-?\\s*[0-9]{3}\\s*-?\\s*[0-9]{4}$"
phones.OK <- c("305-123-4567", "305 123 4567", "+1-786-123-4567",
"+1 786 123 4567", "7861234567", "786 - 123 4567", "+ 1 786 - 123 4567")
phones.NOK <- c("124-456-78901", "124-456-789", "124-456-78 90",
"124-45 6-7890", "12 4-456-7890")
有效案例:
> grepl(us.phones.regex, phones.OK)
[1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE
>
無效的案例:
> grepl(us.phones.regex, phones.NOK)
[1] FALSE FALSE FALSE FALSE FALSE
>
注意 :
\\s
匹配任何空格,製表符或換行符