我需要使用ScriptRunner验证用户在Jira中为“我的字段”输入的数据格式。
用户条目应由前缀(始终为“ ABCD”)和后缀(数字)组成,例如ABCD12345。
我的代码存在问题
如果用户输入的字符串少于9个字符,则不会进行验证;它必须是9个字符或更多。
用户输入什么前缀都无所谓-完全没有前缀验证。
对于等于或超过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()
}
答案 0 :(得分:0)
关于提出的三个问题
field
的长度。如果它小于9,并且您另有预期,则抛出错误。!"ABCD".equalsIgnoreCase(prefix)
可能有效,如果可能,prefix != "ABCD"
suffix
时,请勿对9进行硬编码,而应使用字段长度。这应该有助于验证第4个字符是否为长度1到x的整数。我会添加一个检查字段长度是否为4,这意味着您的数字后缀没有空间。