首页 > 解决方案 > 使用 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')}

如果验证匹配,那么我将继续下一个过程。需要帮助来验证规则

标签: freemarker

解决方案


尝试以下方式:

<#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')}

推荐阅读