San*_*and 3 java regex validation
我使用以下代码验证电话号码.要求是电话号码应在10-25个字符之间,应包括hypen( - ),句点(.),括号().
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ValidatePhoneNumber {
public static void main(String[] argv) {
String phoneNumber = "6058.8()6-05888,9994567";
System.out.println(phoneNumber.length());
//String sPhoneNumber = "605-88899991";
//String sPhoneNumber = "605-888999A";
String regex = "^[0-9.()-]{10,25}$";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(phoneNumber);
if (matcher.matches()) {
System.out.println("Phone Number Valid");
} else {
System.out.println("Phone Number must be in the form XXX-XXXXXXX");
}
}
}
Run Code Online (Sandbox Code Playgroud)
我检查了验证及其工作正常,我想添加一个空白字符"\ s",以便在电话号码之间也可以有空格.但是在正则表达式中添加"\ s"时会出错.
请查看ITU E.164或IETF RfC 3966等标准.不要假设每个国家/地区都有相同的约定和数字长度.
这是RfC 3966中相关的ABNF部分
global-number-digits = "+" *phonedigit DIGIT *phonedigit
phonedigit = DIGIT / visual-separator
visual-separator = "-" / "." / "(" / ")"
DIGIT = "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9"
Run Code Online (Sandbox Code Playgroud)
我们最近遇到了一个设备,它没有让用户输入"+"作为电话号码的一部分.
| 归档时间: |
|
| 查看次数: |
7224 次 |
| 最近记录: |