groovy - 使用 ScriptRunner 在 Jira 中进行条目格式验证
问题描述
我需要使用 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() }
解决方案
关于提出的3个问题
- 添加验证检查
field
. 如果它小于 9 并且您期望否则,抛出一个错误。 - 不确定您使用的语法,如果您对这种情况不特别了解,那么
!"ABCD".equalsIgnoreCase(prefix)
可能会起作用,如果您愿意,那么可能prefix != "ABCD"
- 根据您的“我的字段”长度要求,当您 substring 时
suffix
,不要硬编码 9 而是使用字段长度。这应该有助于验证第 4 个字符之后的字符是否是长度为 1 到 x 的整数。如果字段长度为 4,我会添加一个检查,这意味着您的数字后缀没有空间。
推荐阅读
- javascript - Jest Axios 测试在不应该通过的时候通过
- json - 如何使用 Newtonsoft 在 Vb.net 中反序列化更复杂的 Json Doc
- javascript - Can I programmatically hide the form input ribbon control above the keyboard in safari on iOS?
- php - 在变量名中使用变量
- c# - UWP:计算 RichTextBlock 中的文本高度会产生奇怪的结果
- javascript - Removing previous geoJSON layer when a different HTML button is clicked?
- sql - sql redshift casewhen date = current month
- node.js - 如何在另一个类中使用类函数?
- java - Hibernate Criteria Query JOIN
- css - Block not behaving like