freemarker - 使用 freemarker 进行字符串验证
问题描述
我有这样的文字“请列出 TK 3-ASDFGVB”
我需要使用 freemarker 在以下场景中验证此文本。
- In text make sure , After TK "3-ASDFGVB" should present.
- "3-ASDFGVB" should contain total 9 character.
- "3-ASDFGVB" make sure "-" present between 3 and ASDFGVB
使用以下代码尝试了该场景。
TKNumberstr="please list TK 3-ASDFGVB"
{TKNumberstr.value?matches('.*([0-3]-[0-9]{9}).*')?then('match','nomatch')}
如果验证匹配,那么我将继续下一个过程。需要帮助来验证规则
解决方案
尝试以下方式:
<#assign text = "please list TK 3-ASDFGVB" >
<#assign targets = text?split("TK ") , target = targets[1]>
${(target?length == 9 && target?index_of("-")==1)?then('match','nomatch')}
你应该得到match
作为输出。
编辑:根据下面的评论:
${((TKNumberstr?split("TK ")[1])?length== 9 && TKNumberstr?split("TK ")[1]?index_of("-")==1)?then('match','nomatch')}
推荐阅读
- solidity - 错误:尝试调用函数时返回值无效
- python - ValueError: features 应该是 `Tensor`s 的字典。给定类型:
- python - 为什么这个 Python(使用 3.7)重命名器不允许目录以数字开头?
- reactjs - 如何在反应原生项目中禁用 ESLint?
- python - 在 selenium python 中迭代和输出动态表
- xtext - 如何在数字前加上可选字母?
- javascript - Array.reduce 的性能
- gridview - Yii2 GridView中ActionColumn中的行分组
- kubernetes - 使用 Kubectl -f filename.yml 应用配置文件但收到此错误
- mysql - 使用 Mysql 查询将两列结果合并为单列数据