FreeMarker內建命令(字串命令)

來源:互聯網
上載者:User

一、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到字串的結束。

例:

運算式

輸出

${‘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:將字串的第一個字元或者字母(僅前幾個字元是空格的情況)大寫(如果第一個字元是字母);如果字串的第一個字元不是字母(空格除外),將按照原來字串的格式返回;若第一個字元是字母並且是大寫的情況,結果同上。

運算式

結果

${‘  green mouse’?cap_first}

  Green mouse

${‘GreEN mouse’?cap_first}

GreEN mouse

${‘- green mouse’? cap_first}

- green mouse

In the case of "-green mouse", thefirst word is the -.

三、uncap_first:功能和cap_first相反

四、capitalize:將一個字串的首字母大寫,其他字母全小寫

運算式

結果

${  green mouse}?capitalize

Green Mouse

${‘GreEN mouse’?capitalize}

Green Mouse

 

五、chop_linebreak:如果一個字串的末尾有換行,將換行打斷;否則不變

六、date,time,datetime:將字串轉換成日期,建議提供一個參數指定格式

運算式

結果

<#assign test1 = ‘10/25/1995’?date(‘MM/ddyyyy’)>${test1}

Oct 25,1955

 

 

 

七、ends_with:判斷字串是否以指定的字元結尾,如果是返回true;否則返回false

運算式

結果

${‘read head’?ends_width(‘head’)}

true

 

八、html:作為HTML標記的字串。也就是說,所有的字串

l  <取代<

l  >替換>

l  &替換為&

l  "改為"

如果在某個字串中存在一些HTML特色字元的話,可以使用這種方式來避免與HTML的衝突

九、groups

十、index_of:返回指定字元在字串中第一次出現的索引。也可以指定從那個索引開始進行尋找如${‘abcabc’?index_of(‘bc’,2)}將指定從索引為2的地方開始進行尋找匹配字元.如果沒有找到批評的字元將返回-1

運算式

結果

${‘abcabc’?index_of(‘bc’)}

1

${‘abcabc’?index_of(‘bc’,2)}

4

 

十一、       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版本中沒有:用於判段在一個字串是否存在指定的字元

運算式

結果

<#if ‘maple’?contains(‘ap’)>maple</#if>

maple

 

十九、       matches:只能在java2平台1.4或更高版本上使用,否則將以錯誤來處理

使用正則進行匹配,返回的是一個序列(SimpleSequence),序列的大小可能是0

運算式

結果

<#if "fxo"?matches("f.?o")>Matches.<#else>Does not match.</#if>

Matches.

<#assign res = "foo bar fyo"?matches("f.?o")>

<#if res>Matches.<#else>Does not match.</#if>

Matching sub-strings:

<#list res as m>

- ${m}

</#list>

Does not match.

Matching sub-strings:

- foo

- fyo 

返回的序列不能直接通過${}輸入,而應該通過<#list>進行迭代

二十、       number:將String轉換為數值,這個數字必須在FTL指定的格式

二十一、             replace:它用來取代原來的字串與另一個字串中所有出現的字串。它不涉及字邊界

運算式

結果

${‘this is a car acarus’?replae(‘car’,’maple’)}

this is a maple amapleus

${‘aaaa’?replace(‘aaa’,’X’)}

Xa

${‘maple’?replce(‘’,’|’)}

|m|a|p|l|e|

 

二十二、             rtf:作為富文本(RTF)字串

l  \替換\\

l  {替換\{

l  }替換\}

二十三、             split:”分割

分割方式可以指定為標點符號或者字元

運算式

結果

<#list ‘yangyang,do you know my heart’?split(‘,’) as m>

-          ${m}

</#list>

-yangyang

-do you know my heart

 

二十四、             starts_with:以什麼開始,與ends_with向對應

二十五、             string:什麼也不做,只是返回的字串原樣。唯一的例外is,如果該值是一個多類型的值(例如,它是兩個字串,在同一個時間順序),然後將得到的值只是一個簡單的字串,而不是一個多類型的值。

二十六、             trim:去掉前後空格

二十七、             upper_case:將所有的字母轉換為大寫,與lower_case向對應

二十八、             word_list:返回的是一個序列,其中包含的是命令字串中的所有字,因為他們出現在字串中,語言是通過以“空格”為標準進行分割

運算式

結果

<#assign words = "   a bcd, .   1-2-3"?word_list>

<#list words as word>[${word}]</#list>

[a] [bcd,][.] [1-2-3]

 

二十九、             xhtml:作為XHTML的文本字串,類似於html

l  <取代<

l  >取代>

l  &取代&

l  “取代”

l  ‘取代’

三十、       xml:作為XML文本字串

l  <取代<

l  >替換>

l  &替換為&

l  “改為”

l  ‘改為’

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.