[关闭]
@PheonixHkbxoic 2017-04-24T09:51:18.000000Z 字数 3920 阅读 895

FreeMarker内置命令(字符串命令)

FreeMarker


目录:


一、substring

  1. NOTE: 这个内置以来2.3.7 FreeMarker的存在
  2. 语法exp?substring(from,toExclusive),也可以是exp?substring(from)
  3. 简介:一个字符串,form是第一个字符(A substring of the string.from is the index of the first character.),它必须是一个数字,而且至少是0和小于0或者具有相 同的 toExclusive.进行截取操作的最后字符的索引,该值必须为数字,如果该 值省略,默认为从from到字符串的结束。
  4. 例:
表达式 输出
${‘abc’?substring(0)} Abc
${‘abc’?substring(1)} Bc
${‘abc’?substringf(2)} C
${‘abc’?substring(3)}
${‘abc’?substring(0,0)}
${‘abc’?substring(0,1)} A
${‘abc’?substring(0,1)} Ab

二、cap_first

  1. 将字符串的第一个字符或者字母(仅前几个字符是空格的情况)大写(如果第一个字符是字母);如果字符串的第一个字符不是字母(空格除外),将按照原来字符串的格式返回;若第一个字符是字母并且是大写的情况,结果同上。
  2. 表达式
  3. 结果
  4. ${‘ green mouse’?cap_first}
  5. Green mouse
  6. ${‘GreEN mouse’?cap_first}
  7. GreEN mouse
  8. ${‘- green mouse’? cap_first}
  9. - green mouse
  10. In the case of "-green mouse", thefirst word is the -.

三、uncap_first

  1. 功能和cap_first相反

四、capitalize

  1. 将一个字符串的首字母大写,其他字母全小写
  2. 表达式
  3. 结果
  4. ${ green mouse}?capitalize
  5. Green Mouse
  6. ${‘GreEN mouse’?capitalize}
  7. Green Mouse

五、chop_linebreak

  1. 如果一个字符串的末尾有换行,将换行打断;否则不变

六、date,time,datetime

  1. 将字符串转换成日期,建议提供一个参数指定格式
  2. <#assign test1 = 10/25/1995’?date(‘MM/ddyyyy’)>${test1}
  3. Oct 25,1955

七、ends_with

  1. 判断字符串是否以指定的字符结尾,如果是返回true;否则返回false
  2. ${‘read head’?ends_width(‘head’)}
  3. true

八、html

  1. 作为HTML标记的字符串。也就是说,所有的字符串
  2. l <取代<
  3. l >替换>
  4. l &替换为&
  5. l "改为"
  6. 如果在某个字符串中存在一些HTML特色字符的话,可以使用这种方式来避免与HTML的冲突

九、groups

十、index_of

  1. 返回指定字符在字符串中第一次出现的索引。也可以指定从那个索引开始进行查找如${‘abcabc’?index_of(‘bc’,2)}将指定从索引为2的地方开始进行查找匹配字符.如果没有找到批评的字符将返回-1
  2. 表达式
  3. 结果
  4. ${‘abcabc’?index_of(‘bc’)}
  5. 1
  6. ${‘abcabc’?index_of(‘bc’,2)}
  7. 4

十一、 j_string

  1. Java中的转义字符

十二、js_string:

  1. JavaScript语言文字的字符串字符串的转义规则,因此它是安全的插入文本值转换为字符串。两个引号(“)和单引号- quoate')被转义。2.3.1起价FreeMarker的,它也逃脱 > 为“\> ( 避免 </脚本>)。此外,在所有字符的UCS 码点0x20,即JavaScript语言中没有专门的转义序列,将被替换为十六进制转义(\ x二十)。(当然,根据JavaScript语言的字符串的语法,反斜杠(\)会被转义也换行会被转义为 \ ?,...等等)
  2. 如:
  3. <#assignuser = "Big Joe's \"right hand\"">
  4. <script>
  5. alert("Welcome${user?js_string}!");
  6. </script>
  7. 将返回
  8. <script>
  9. alert("Welcome Big Joe\'s \"right hand\"!");
  10. </script>
  11. ```
  12. # 十三、 last_index_of:最后一个匹配的索引
  13. # 十四、 length:字符串的长度
  14. # 十五、 lower_case:全部转换为小写
  15. # 十六、 left_pad
  16. # 十七、 right_pad
  17. # 十八、 contains
  18. ```这个内置对象在2.3.1版本中有,但2.3版本中没有:用于判段在一个字符串是否存在指定的字符
  19. 表达式
  20. 结果
  21. <#if ‘maple’?contains(‘ap’)>maple</#if>
  22. maple
  23. <div class="md-section-divider"></div>

十九、 matches:

  1. 只能在java2平台1.4或更高版本上使用,否则将以错误来处理
  2. 使用正则进行匹配,返回的是一个序列(SimpleSequence),序列的大小可能是0
  3. 表达式
  4. 结果
  5. <#if "fxo"?matches("f.?o")>Matches.<#else>Does not match.</#if>
  6. Matches.
  7. <#assign res = "foo bar fyo"?matches("f.?o")>
  8. <#if res>Matches.<#else>Does not match.</#if>
  9. Matching sub-strings:
  10. <#list res as m>
  11. - ${m}
  12. </#list>
  13. Does not match.
  14. Matching sub-strings:
  15. - foo
  16. - fyo
  17. 返回的序列不能直接通过${}输入,而应该通过<#list>进行迭代
  18. <div class="md-section-divider"></div>

二十、 number:

  1. String转换为数值,这个数字必须在FTL指定的格式
  2. <div class="md-section-divider"></div>

二十一、 replace:

  1. 它用来取代原来的字符串与另一个字符串中所有出现的字符串。它不涉及字边界
  2. 表达式
  3. 结果
  4. ${‘this is a car acarus’?replae(‘car’,’maple’)}
  5. this is a maple amapleus
  6. ${‘aaaa’?replace(‘aaa’,’X’)}
  7. Xa
  8. ${‘maple’?replce(‘’,’|’)}
  9. |m|a|p|l|e|
  10. <div class="md-section-divider"></div>

二十二、rtf:

  1. 作为富文本(RTF)字符串
  2. l \替\\
  3. l {替换\{
  4. l }替换\}
  5. <div class="md-section-divider"></div>

二十三、split分割

  1. 分割方式可以指定为标点符号或者字符
  2. 表达式
  3. 结果
  4. <#list yangyang,do you know my heart’?split(‘,’) as m>
  5. - ${m}
  6. </#list>
  7. -yangyang
  8. -do you know my heart
  9. <div class="md-section-divider"></div>

二十四、starts_with:以什么开始,与ends_with向对应

二十五、 string

  1. 什么也不做,只是返回的字符串原样。唯一的例外is,如果该值是一个多类型的值(例如,它是两个字符串,在同一个时间顺序),然后将得到的值只是一个简单的字符串,而不是一个多类型的值。
  2. <div class="md-section-divider"></div>

二十六、 trim

  1. 去掉前后空格
  2. <div class="md-section-divider"></div>

二十七、upper_case

  1. 将所有的字母转换为大写,与lower_case向对应
  2. <div class="md-section-divider"></div>

二十八、word_list

  1. 返回的是一个序列,其中包含的是命令字符串中的所有字,因为他们出现在字符串中,语言是通过以“空格”为标准进行分割
  2. 表达式
  3. 结果
  4. <#assign words = " a bcd, . 1-2-3"?word_list>
  5. <#list words as word>[${word}]</#list>
  6. [a] [bcd,][.] [1-2-3]
  7. <div class="md-section-divider"></div>

二十九、xhtml:作为XHTML的文本字符串,类似于html

  1. l <取代<
  2. l >取代>
  3. l &取代&
  4. l “取代”
  5. l ‘取代’
  6. <div class="md-section-divider"></div>

三十、 xml:作为XML文本字符串

  1. l <取代<
  2. l >替换>
  3. l &替换为&
  4. l “改为”
  5. l ‘改为’
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注