Java 中的 Sip URI 验证
Sip URI validation in Java
我有以下代码来验证 sip:uri 格式字符串:
private final static Pattern SIP_URI_PATTERN = Pattern.compile("^(sip(?:s)?):(?:[^:]*(?::[^@]*)?@)?([^:@]*)(?::([0-9]*))?$", Pattern.CASE_INSENSITIVE);
public static boolean isValidURI(String address){
if(address == null)
return false;
return address != null && address.length() <= 65 && SIP_URI_PATTERN.matcher(address).matches();
}
我不是专家,所以我想我在这里遗漏了一些东西,当我提交这个字符串时,它 returns true:
sip:4563214567@example.com
sip:4563214567@XX.XX.XX.XX -> XX = IP 地址
当我提交这个字符串时,它 return 也是正确的,但是 应该 return 错误 因为缺少 @:
sip:4563214567example.com
有什么想法吗?
我觉得这样检查有效的IP地址或域名更方便。
sip:[0-9]*@((\b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.|$)){4}\b)|((([a-zA-Z]{1})|([a-zA-Z]{1}[a-zA-Z]{1})|([a-zA-Z]{1}[0-9]{1})|([0-9]{1}[a-zA-Z]{1})|([a-zA-Z0-9][a-zA-Z0-9-_]{1,61}[a-zA-Z0-9]))\.([a-zA-Z]{2,6}|[a-zA-Z0-9-]{2,30}\.[a-zA-Z]{2,3})))
以Java形式,
private final static Pattern SIP_URI_PATTERN =
Pattern.compile("sip:[0-9]*@((\b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.|$)){4}\b)|((([a-zA-Z]{1})|([a-zA-Z]{1}[a-zA-Z]{1})|([a-zA-Z]{1}[0-9]{1})|([0-9]{1}[a-zA-Z]{1})|([a-zA-Z0-9][a-zA-Z0-9-_]{1,61}[a-zA-Z0-9]))\.([a-zA-Z]{2,6}|[a-zA-Z0-9-]{2,30}\.[a-zA-Z]{2,3})))",
Pattern.CASE_INSENSITIVE);
我有以下代码来验证 sip:uri 格式字符串:
private final static Pattern SIP_URI_PATTERN = Pattern.compile("^(sip(?:s)?):(?:[^:]*(?::[^@]*)?@)?([^:@]*)(?::([0-9]*))?$", Pattern.CASE_INSENSITIVE);
public static boolean isValidURI(String address){
if(address == null)
return false;
return address != null && address.length() <= 65 && SIP_URI_PATTERN.matcher(address).matches();
}
我不是专家,所以我想我在这里遗漏了一些东西,当我提交这个字符串时,它 returns true:
sip:4563214567@example.com
sip:4563214567@XX.XX.XX.XX -> XX = IP 地址
当我提交这个字符串时,它 return 也是正确的,但是 应该 return 错误 因为缺少 @:
sip:4563214567example.com
有什么想法吗?
我觉得这样检查有效的IP地址或域名更方便。
sip:[0-9]*@((\b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.|$)){4}\b)|((([a-zA-Z]{1})|([a-zA-Z]{1}[a-zA-Z]{1})|([a-zA-Z]{1}[0-9]{1})|([0-9]{1}[a-zA-Z]{1})|([a-zA-Z0-9][a-zA-Z0-9-_]{1,61}[a-zA-Z0-9]))\.([a-zA-Z]{2,6}|[a-zA-Z0-9-]{2,30}\.[a-zA-Z]{2,3})))
以Java形式,
private final static Pattern SIP_URI_PATTERN =
Pattern.compile("sip:[0-9]*@((\b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.|$)){4}\b)|((([a-zA-Z]{1})|([a-zA-Z]{1}[a-zA-Z]{1})|([a-zA-Z]{1}[0-9]{1})|([0-9]{1}[a-zA-Z]{1})|([a-zA-Z0-9][a-zA-Z0-9-_]{1,61}[a-zA-Z0-9]))\.([a-zA-Z]{2,6}|[a-zA-Z0-9-]{2,30}\.[a-zA-Z]{2,3})))",
Pattern.CASE_INSENSITIVE);