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

时间:2018-12-20 02:28:19

标签: groovy jira

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

用户条目应由前缀(始终为“ ABCD”)和后缀(数字)组成,例如ABCD12345。

我的代码存在问题

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

  2. 用户输入什么前缀都无所谓-完全没有前缀验证。

  3. 对于等于或超过9个字符的字符串,仅后缀有效(字符从5到9)。

    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()
    }
    

1 个答案:

答案 0 :(得分:0)

关于提出的三个问题

  1. 添加一个验证,检查field的长度。如果它小于9,并且您另有预期,则抛出错误。
  2. 不确定所使用的语法,如果您对大小写不特别,则!"ABCD".equalsIgnoreCase(prefix)可能有效,如果可能,prefix != "ABCD"
  3. 根据您的“我的字段”长度要求,在子字符串suffix时,请勿对9进行硬编码,而应使用字段长度。这应该有助于验证第4个字符是否为长度1到x的整数。我会添加一个检查字段长度是否为4,这意味着您的数字后缀没有空间。