使用正则表达式验证字段

时间:2017-07-26 11:59:48

标签: regex symfony validation annotations doctrine

我想验证用户数据,我有一个字段预算,我想要这个格式给出ddd.ddd,ddd exp:235.123,125

如何使用正则表达式指定此格式,我正在使用symfony和doctrine这是我尝试过的,当我给出不同的格式时没有发生任何事情

/**
 * @var float
 *
 * @ORM\Column(name="budget", type="float",nullable=true)
 *
 *
 * @Assert\Regex(
 *     pattern="/^\d\d\d[.]\d\d\d[,]\d\d\d+$/",
 *     match=false,
 *     message="Budget Invalid"
 * )
 */
private $budget;

1 个答案:

答案 0 :(得分:0)

使用以下修复程序:

task ciBuild {
    def cobolFiles = fileTree("src/main/cobol").matching {
        include "**/*.CBL"
    }
    dependsOn collectFiles
    inputs.files cobolFiles
    outputs.dir 'path/to/outputDir'
    doLast {
        cobolFiles.files.parallelStream().each { File file ->
            exec {
                commandLine "${projectDir}/compileFile.bat"
                args file.absolutePath
                ignoreExitValue = true
            }
        }
    }
}

您的模式应该匹配您指定的格式,因此,match必须设置为 true ,或者删除为 true 是默认值。

  

如果* @Assert\Regex( * pattern="/^\d{3}\.\d{3},\d{3}$/", * match=true, * message="Budget Invalid" (或未设置),如果给定的字符串与给定的pattern正则表达式匹配,则此验证器将通过。但是,当此选项设置为true时,将发生相反的情况:仅当给定字符串pattern正则表达式匹配时,验证才会通过。

模式可以缩小false:字符串开头,3位数,^\d{3}\.\d{3},\d{3}$,3位数,.,然后是字符串末尾的3位数。< / p>

如果最后一个号码的数字超过3位,请使用,代替\d{3,}