验证用户输入是不是采用这种格式 "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电子邮件验证不一致

element-ui表单部分验证报错

wingdow xp iis 安装好后,在浏览器上打入"http://localhost/"后,怎么要输入用户名和密码,怎么解决啊?

关于obdc连接sqlserver的问题

java怎么判断输入的字符串是不是为时间格式

JSP中插入javascript语句,要求用一个正则表示验证输入的用户名是不是含有空格