验证用户输入是不是采用这种格式 "ABC123" isvalid boolean
Posted
技术标签:
【中文标题】验证用户输入是不是采用这种格式 "ABC123" isvalid boolean【英文标题】:validate the user input to be in this format "ABC123" isvalid boolean验证用户输入是否采用这种格式 "ABC123" isvalid boolean 【发布时间】:2014-11-01 20:40:42 【问题描述】:我在验证航班代码时遇到问题,我想使用此表单 ABC123 输入航班代码
private void ValidationOfFlightCode(String flightCode)
if (flightCode.length()== 6)
boolean isvalid = Regex.IsMatch(flightCode, @"^[a-zA-Z]3[0-9]3$");
if (isvalid)
boolean isLetter = false;
for (int i = 0; i < 3; i++)
isLetter = Char.IsLetter(flightCode, i);
if (!isLetter)
break;
if (isLetter)
System.err.println(flightCode + ": " + isvalid);
else
System.err.println("");
else
System.err.println("");
else
System.err.println("");
【问题讨论】:
你面临什么问题(除了这个代码看起来不像 Java,因为在这种语言中没有标准的Regex
类约束 IsMatch
方法)?
我对您的实际问题感到困惑
Char.IsLetter(flightCode, i)
检查的目的是什么?您已经检查过输入的格式是否正确。
swig 的链接是什么???
【参考方案1】:
怎么样:
private void ValidationOfFlightCode(String flightCode)
boolean isValid = flightCode.matches("^[A-Z]3[0-9]3$");
System.out.println(flightCode + ": " + isValid);
基本上,您的代码的其余部分是不必要的,因为正则表达式已经包含 6 个字符的要求和指定的格式(3 个大写字母,然后是 3 个数字)。 更有意义的是:
private boolean validateFlightCode(String flightCode)
boolean isValid = flightCode.matches("^[A-Z]3[0-9]3$");
//System.out.println(flightCode + ": " + isValid);
return isValid;
第二个选项也返回验证结果。此外,方法命名符合 Java 编码约定,可读性更好,因为您实际上不是在描述过程(验证),而是操作(验证)。
编辑:"^[A-Z]3[0-9]3$"
仅用于大写字母,"^[a-z]3[0-9]3$"
仅用于小写,"^[a-zA-Z]3[0-9]3$"
用于混合,"^([A-Z]|[a-z])3[0-9]3$"
用于任何一个。
【讨论】:
很难判断 OP 是否只需要大写字母。也许添加他必须确定的信息。 是的,谢谢,添加了有关不同正则表达式格式的附加信息。 谢谢你们,我很感激。以上是关于验证用户输入是不是采用这种格式 "ABC123" isvalid boolean的主要内容,如果未能解决你的问题,请参考以下文章
html输入字段的电子邮件格式与laravel电子邮件验证不一致
wingdow xp iis 安装好后,在浏览器上打入"http://localhost/"后,怎么要输入用户名和密码,怎么解决啊?