我想创建一个文本字段,只允许输入x.x.x.x格式的IP地址其中x不能大于255。我发现了一些编码,它只允许我达到x.x,你能帮我吗?如有任何建议,我们将不胜感激。
使用模式匹配器
public final static boolean isValidIp(CharSequence target)
{
if (target == null) return false;
else return android.util.Patterns.IP_ADDRESS.matcher(target).matches();
}
您可以使用正则表达式进行IP地址验证。
((2|[0-1]?[0-9]?[0-90])[.]){3}
您可以参考此链接。http://gskinner.com/RegExr/
您可以使用正则表达式。例如ip地址:
String ipAdress = "(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)";
或者,您可以使用4种不同的文本视图,最大值为255,然后稍后将其组合。
参考此代码
public class IPAddressFormatValidator{
private Pattern pattern;
private Matcher matcher;
private static final String IPADDRESS_PATTERN =
"^([01]?\d\d?|2[0-4]\d|25[0-5])\." +
"([01]?\d\d?|2[0-4]\d|25[0-5])\." +
"([01]?\d\d?|2[0-4]\d|25[0-5])\." +
"([01]?\d\d?|2[0-4]\d|25[0-5])$";
public IPAddressFormatValidator(){
pattern = Pattern.compile(IPADDRESS_PATTERN);
}
public boolean validate(final String ipAddress){
matcher = pattern.matcher(ipAddress);
return matcher.matches();
}
}