【freemaker】ftl freemaker String常见操作语法 - 日理万妓 2022-06-09 13:54 686阅读 0赞 一、substring NOTE: 这个内置以来2.3.7 FreeMarker的存在 语法exp?substring(from,toExclusive),也可以是exp?substring(from) 简介:一个字符串,form是第一个字符(A substring of the string.from is the index of the first character.),它必须是一个数字,而且至少是0和小于0或者具有相 同的 toExclusive.进行截取操作的最后字符的索引,该值必须为数字,如果该值省略,默认为从from到字符串的结束。 例: <table style="margin-left:42pt;"> <tbody> <tr> <td style="border-color:#000000;width:213.05pt;"> <p>表达式</p> </td> <td style="width:213.05pt;"> <p>输出</p> </td> </tr> <tr> <td style="width:213.05pt;"> <p>${‘abc’?substring(0)} </p> </td> <td style="width:213.05pt;"> <p>Abc</p> </td> </tr> <tr> <td style="width:213.05pt;"> <p>${‘abc’?substring(1)}</p> </td> <td style="width:213.05pt;"> <p>Bc</p> </td> </tr> <tr> <td style="width:213.05pt;"> <p>${‘abc’?substringf(2)}</p> </td> <td style="width:213.05pt;"> <p>C</p> </td> </tr> <tr> <td style="width:213.05pt;"> <p>${‘abc’?substring(3)}</p> </td> <td style="width:213.05pt;"> <p></p> </td> </tr> <tr> <td style="width:213.05pt;"> <p>${‘abc’?substring(0,0)}</p> </td> <td style="width:213.05pt;"> <p></p> </td> </tr> <tr> <td style="width:213.05pt;"> <p>${‘abc’?substring(0,1)}</p> </td> <td style="width:213.05pt;"> <p>A</p> </td> </tr> <tr> <td style="width:213.05pt;"> <p>${‘abc’?substring(0,1)}</p> </td> <td style="width:213.05pt;"> <p>Ab</p> </td> </tr> </tbody> </table> 二、cap\_first:将字符串的第一个字符或者字母(仅前几个字符是空格的情况)大写(如果第一个字符是字母);如果字符串的第一个字符不是字母(空格除外),将按照原来字符串的格式返回;若第一个字符是字母并且是大写的情况,结果同上。 <table style="margin-left:42pt;"> <tbody> <tr> <td style="border-color:#000000;width:195.4pt;"> <p>表达式</p> </td> <td style="width:188.7pt;"> <p>结果</p> </td> </tr> <tr> <td style="width:195.4pt;"> <p>${‘ green mouse’?cap_first}</p> </td> <td style="width:188.7pt;"> <p> Green mouse</p> </td> </tr> <tr> <td style="width:195.4pt;"> <p>${‘GreEN mouse’?cap_first}</p> </td> <td style="width:188.7pt;"> <p>GreEN mouse</p> </td> </tr> <tr> <td style="width:195.4pt;"> <p>${‘- green mouse’? cap_first}</p> </td> <td style="width:188.7pt;"> <p>- green mouse</p> </td> </tr> </tbody> </table> In the case of "-green mouse", thefirst word is the -. 三、uncap\_first:功能和cap\_first相反 四、capitalize:将一个字符串的首字母大写,其他字母全小写 <table style="margin-left:42pt;"> <tbody> <tr> <td style="border-color:#000000;width:213.05pt;"> <p>表达式</p> </td> <td style="width:213.05pt;"> <p>结果</p> </td> </tr> <tr> <td style="width:213.05pt;"> <p>${ green mouse}?capitalize</p> </td> <td style="width:213.05pt;"> <p>Green Mouse</p> </td> </tr> <tr> <td style="width:213.05pt;"> <p>${‘GreEN mouse’?capitalize}</p> </td> <td style="width:213.05pt;"> <p>Green Mouse</p> </td> </tr> </tbody> </table> 五、chop\_linebreak:如果一个字符串的末尾有换行,将换行打断;否则不变 六、date,time,datetime:将字符串转换成日期,建议提供一个参数指定格式 <table style="margin-left:42pt;"> <tbody> <tr> <td style="border-color:#000000;width:303.6pt;"> <p>表达式</p> </td> <td style="width:80.5pt;"> <p>结果</p> </td> </tr> <tr> <td style="width:303.6pt;"> <p><#assign test1 = ‘10/25/1995’?date(‘MM/ddyyyy’)>${test1}</p> </td> <td style="width:80.5pt;"> <p>Oct 25,1955</p> </td> </tr> <tr> <td style="width:303.6pt;"> <p></p> </td> <td style="width:80.5pt;"> <p></p> </td> </tr> </tbody> </table> 七、ends\_with:判断字符串是否以指定的字符结尾,如果是返回true;否则返回false <table style="margin-left:42pt;"> <tbody> <tr> <td style="border-color:#000000;width:213.05pt;"> <p>表达式</p> </td> <td style="width:213.05pt;"> <p>结果</p> </td> </tr> <tr> <td style="width:213.05pt;"> <p>${‘read head’?ends_width(‘head’)}</p> </td> <td style="width:213.05pt;"> <p>true</p> </td> </tr> </tbody> </table> 八、html:作为HTML标记的字符串。也就是说,所有的字符串 l <取代< l >替换> l &替换为& l "改为" 如果在某个字符串中存在一些HTML特色字符的话,可以使用这种方式来避免与HTML的冲突 九、groups 十、index\_of:返回指定字符在字符串中第一次出现的索引。也可以指定从那个索引开始进行查找如$\{‘abcabc’?index\_of(‘bc’,2)\}将指定从索引为2的地方开始进行查找匹配字符.如果没有找到批评的字符将返回-1 <table style="margin-left:42pt;"> <tbody> <tr> <td style="border-color:#000000;width:213.05pt;"> <p>表达式</p> </td> <td style="width:213.05pt;"> <p>结果</p> </td> </tr> <tr> <td style="width:213.05pt;"> <p>${‘abcabc’?index_of(‘bc’)}</p> </td> <td style="width:213.05pt;"> <p>1</p> </td> </tr> <tr> <td style="width:213.05pt;"> <p>${‘abcabc’?index_of(‘bc’,2)}</p> </td> <td style="width:213.05pt;"> <p>4</p> </td> </tr> </tbody> </table> 十一、 j\_string:java中的转义字符 十二、 js\_string: 脱JavaScript语言文字的字符串字符串的转义规则,因此它是安全的插入文本值转换为字符串。两个引号(“)和单引号- quoate(')被转义。2.3.1起价FreeMarker的,它也逃脱 > 为“\\> ( 避免 </脚本>)。此外,在所有字符的UCS 码点0x20,即JavaScript语言中没有专门的转义序列,将被替换为十六进制转义(\\ x二十)。(当然,根据JavaScript语言的字符串的语法,反斜杠(\\)会被转义也换行会被转义为 \\ ?,...等等) 如: <\#assignuser = "Big Joe's \\"right hand\\""> <script> alert("Welcome$\{user?js\_string\}!"); </script> 将返回 <script> alert("Welcome Big Joe\'s \"right hand\"!"); </script> 十三、 last\_index\_of:最后一个匹配的索引 十四、 length:字符串的长度 十五、 lower\_case:全部转换为小写 十六、 left\_pad 十七、 right\_pad 十八、 contains这个内置对象在2.3.1版本中有,但2.3版本中没有:用于判段在一个字符串是否存在指定的字符 <table style="margin-left:42pt;"> <tbody> <tr> <td style="border-color:#000000;width:213.05pt;"> <p>表达式</p> </td> <td style="width:213.05pt;"> <p>结果</p> </td> </tr> <tr> <td style="width:213.05pt;"> <p><#if ‘maple’?contains(‘ap’)>maple</#if></p> </td> <td style="width:213.05pt;"> <p>maple</p> </td> </tr> </tbody> </table> 十九、 matches:只能在java2平台1.4或更高版本上使用,否则将以错误来处理 使用正则进行匹配,返回的是一个序列(SimpleSequence),序列的大小可能是0 <table style="margin-left:42pt;"> <tbody> <tr> <td style="border-color:#000000;width:275.25pt;"> <p>表达式</p> </td> <td style="width:108.85pt;"> <p>结果</p> </td> </tr> <tr> <td style="width:275.25pt;"> <p><#if "fxo"?matches("f.?o")>Matches.<#else>Does not match.</#if></p> </td> <td style="width:108.85pt;"> <p>Matches.</p> </td> </tr> <tr> <td style="width:275.25pt;"> <p><#assign res = "foo bar fyo"?matches("f.?o")></p> <p><#if res>Matches.<#else>Does not match.</#if></p> <p>Matching sub-strings:</p> <p><#list res as m></p> <p>- ${m}</p> <p></#list></p> </td> <td style="width:108.85pt;"> <p>Does not match.</p> <p>Matching sub-strings:</p> <p>- foo</p> <p>- fyo </p> </td> </tr> </tbody> </table> 返回的序列不能直接通过$\{\}输入,而应该通过<\#list>进行迭代 二十、 number:将String转换为数值,这个数字必须在FTL指定的格式 二十一、 replace:它用来取代原来的字符串与另一个字符串中所有出现的字符串。它不涉及字边界 <table style="margin-left:42pt;"> <tbody> <tr> <td style="border-color:#000000;width:213.05pt;"> <p>表达式</p> </td> <td style="width:213.05pt;"> <p>结果</p> </td> </tr> <tr> <td style="width:213.05pt;"> <p>${‘this is a car acarus’?replae(‘car’,’maple’)}</p> </td> <td style="width:213.05pt;"> <p>this is a maple amapleus</p> </td> </tr> <tr> <td style="width:213.05pt;"> <p>${‘aaaa’?replace(‘aaa’,’X’)}</p> </td> <td style="width:213.05pt;"> <p>Xa</p> </td> </tr> <tr> <td style="width:213.05pt;"> <p>${‘maple’?replce(‘’,’|’)}</p> </td> <td style="width:213.05pt;"> <p>|m|a|p|l|e|</p> </td> </tr> </tbody> </table> 二十二、 rtf:作为富文本(RTF)字符串 l \\替换\\\\ l \{替换\\\{ l \}替换\\\} 二十三、 split:”分割 分割方式可以指定为标点符号或者字符 <table style="margin-left:42pt;"> <tbody> <tr> <td style="border-color:#000000;width:268.2pt;"> <p>表达式</p> </td> <td style="width:115.9pt;"> <p>结果</p> </td> </tr> <tr> <td style="width:268.2pt;"> <p><#list ‘yangyang,do you know my heart’?split(‘,’) as m></p> <p>- ${m}</p> <p style="margin-left:18pt;"></#list></p> </td> <td style="width:115.9pt;"> <p>-yangyang</p> <p>-do you know my heart</p> </td> </tr> </tbody> </table> 二十四、 starts\_with:以什么开始,与ends\_with向对应 二十五、 string:什么也不做,只是返回的字符串原样。唯一的例外is,如果该值是一个多类型的值(例如,它是两个字符串,在同一个时间顺序),然后将得到的值只是一个简单的字符串,而不是一个多类型的值。 二十六、 trim:去掉前后空格 二十七、 upper\_case:将所有的字母转换为大写,与lower\_case向对应 二十八、 word\_list:返回的是一个序列,其中包含的是命令字符串中的所有字,因为他们出现在字符串中,语言是通过以“空格”为标准进行分割 <table style="margin-left:42pt;"> <tbody> <tr> <td style="border-color:#000000;width:213.05pt;"> <p>表达式</p> </td> <td style="width:213.05pt;"> <p>结果</p> </td> </tr> <tr> <td style="width:213.05pt;"> <p><#assign words = " a bcd, . 1-2-3"?word_list></p> <p><#list words as word>[${word}]</#list></p> </td> <td style="width:213.05pt;"> <p>[a] [bcd,][.] [1-2-3]</p> </td> </tr> </tbody> </table> 二十九、 xhtml:作为XHTML的文本字符串,类似于html l <取代< l >取代> l &取代& l “取代” l ‘取代’ 三十、 xml:作为XML文本字符串 l <取代< l >替换> l &替换为& l “改为” l ‘改为’
还没有评论,来说两句吧...