Groovy 使用ScriptRunner在Jira中验证条目格式

Groovy 使用ScriptRunner在Jira中验证条目格式,groovy,jira,Groovy,Jira,我需要使用ScriptRunner验证用户在Jira中为“我的字段”输入的数据格式 用户输入应包括前缀(始终为“ABCD”)和后缀(数字),例如ABCD12345 我的代码有问题: 如果用户输入任何少于9个字符的字符串,则不会进行验证;它必须是9个字符或更多 不管用户输入什么前缀-根本没有前缀验证 对于等于或大于9个字符的字符串,只验证后缀(从5到9个字符) 关于提出的3个问题 添加验证,检查字段的长度。如果该值小于9,并且您预期为其他值,则抛出一个错误 不确定您使用的语法,如果您对该案例不太

我需要使用ScriptRunner验证用户在Jira中为“我的字段”输入的数据格式

用户输入应包括前缀(始终为“ABCD”)和后缀(数字),例如ABCD12345

我的代码有问题:

  • 如果用户输入任何少于9个字符的字符串,则不会进行验证;它必须是9个字符或更多

  • 不管用户输入什么前缀-根本没有前缀验证

  • 对于等于或大于9个字符的字符串,只验证后缀(从5到9个字符)


  • 关于提出的3个问题

  • 添加验证,检查
    字段的长度
    。如果该值小于9,并且您预期为其他值,则抛出一个错误
  • 不确定您使用的语法,如果您对该案例不太熟悉,那么
    !“ABCD”.equalsIgnoreCase(前缀)
    可能有效,如果您是,那么可能
    前缀!=“ABCD”
  • 根据“我的字段”长度要求,在子字符串
    后缀
    时,不要硬编码9,而是使用字段长度。这将有助于验证第4位之后的字符是否为长度为1到x的整数。如果字段长度为4,我会添加一个检查,这意味着没有空间容纳数字后缀
  • import com.onresolve.scriptrunner.runner.util.UserMessageUtil
    import com.opensymphony.workflow.InvalidInputException
    
    String field = getFieldByName("My Example Field").getValue()
    
    String prefix = field.substring(0, 4);
    String suffix = field.substring(4, 9);
    
    if (!prefix == "ABCD"){
        getFieldByName("My Example Field").setError("Incorrect prefix: " + prefix)
    }
    else if (!suffix.isInteger()){
        getFieldByName("My Example Field").setError("Incorrect suffix: " + suffix)
    }
    else {
        getFieldByName("My Example Field").clearError()
    }