2212-1a-305b
这是科目代码,其编码规则是:
- 科目代码可以是数字、字母、“-”,但是 1 级代码一定是数字。字母不区分大小写,并将大写字母一律转换成小写
- “-”是分隔符号,表示不同的级别,例如上面的示例代码是 3 级科目
- 每级代码不限制长度,但是总长度(包括“-”在内)不超过 60 个字符
- 如果还可以自定义的话,要能够检查出表中是不是已经有了上级代码(这个能够实现吗)
求这个规则的正则表达式或者解决方法
2212-1a-305b
这是科目代码,其编码规则是:
求这个规则的正则表达式或者解决方法
冷石然(Team) 2022-12-15 22:45:43这个正则可以简单的达到你要的验证效果:
^\d+(-[a-zA-Z0-9])*$
但是,以下几个需求是正则表达式做不到的:
- 限制总长度
- 字母大写转小写
- 检查是否已经存在上级代码
好在这些功能都可以用明道云的其它能力代替:
- 限制总长度:在文本字段中设置「限定字数」,最大 60;
- 字母大写转小写:加一个文本字段,使用默认值中的 LOWER 函数处理;
- 在工作流中新增一个工作表触发器,触发条件是新增记录时触发,然后使用代码块分离出上级代码,再使用获取单条记录节点去获取上级记录,根据获取的结果有记录或者无记录,可以分别处理不同的业务逻辑。
谢谢!你的意见很详细,起码让我知道了哪些是可以做的,哪些需要复杂的程序代码来实现。
前面的正则少打了个 + 号
^\d+(-[a-zA-Z0-9]+)*$
这个正则可以简单的达到你要的验证效果:
^\d+(-[a-zA-Z0-9])*$
但是,以下几个需求是正则表达式做不到的:
好在这些功能都可以用明道云的其它能力代替: