首页 > 其他分享 >内置函数

内置函数

时间:2023-04-16 22:37:49浏览次数:31  
标签:index 内置 函数 seq 序列 内建函数 字符串 string


1.hashmap

内建函数values和keys来枚举哈希表中的子变量

1.1keys 键的集合

<#assign h = {"name":"mouse", "price":50}>
<#assign keys = h?keys>
<#list keys as key>${key} = ${h[key]}; </#list>

 1.2values值的集合

2.new

使用内建函数new将指令放到一个FTL库

 

<#assign upper = "com.example.UpperDirective"?new()>

3 处理字符串的内建函数


 

3.1 substring 取子串

exp?substring(from, toExclusive),也可以作为exp?substring(from)调用

3.2 cap_first 首字母大写

 

${" green mouse"?cap_first}
${"GreEN mouse"?cap_first}

 

3.3uncap_first 首字母小写

3.4capitalize 首字母大写

字符串的所有单词首字母都大写

 

${" green mouse"?capitalize}
${"GreEN mouse"?capitalize}

 3.5chop_linebreak 切断换行符


 

如果在末尾没有换行符的字符串,那么可以换行,否则不改变字符串

3.6date,time,datetime 日期,时间,时间日期

 

<#assign test1 = "10/25/1995"?date("MM/dd/yyyy")>
<#assign test2 = "15:05:30"?time("HH:mm:ss")>
<#assign test3 = "1995-10-25 03:05 PM"?datetime("yyyy-MM-dd hh:mm a")>
${test1}
${test2}
${test3}

3.7ends_with 以…结尾 


 

返回是否这个字符串以指定的子串结尾。比如"redhead"?ends_with("head")返回布尔值true。而且"head"?ends_with("head")也返回true。

3.8html HTML格式的转义文本

 

<input type=text name=user value="${user?html}">

3.9index_of 索引所在位置


 

3.10j_string Java语言规则的字符串转义

 

<#assign beanName = 'The "foo" bean.'>
String BEAN_NAME = "${beanName?j_string}";

 

3.11js_string JavaScript语言规则的字符串转义 

 

<#assign user = "Big Joe's \"right hand\"">
<script>
alert("Welcome ${user?js_string}!");
</script>

 3.12json_string JSON规则的字符串转义


 

3.13last_index_of 最后的索引所在位置

3.14length 字符串长度

3.15lower_case 小写形式

3.16left_pad 距左边

如果它仅仅用1个参数,那么它将在字符串的开始插入空白,直到整个串的长度达到参数指定的值。如果字符串的长度达到指定数值或者比指定的长度还长,那么就什么都不做了。

 

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

 如果使用了两个参数,那么第一个参数表示的含义和你使用一个参数时的相同,第二个参数指定用什么东西来代替空白字符


 

 

[${""?left_pad(5, "-")}]
[${"a"?left_pad(5, "-")}]

 3.17right_pad 距右边


 

3.18contains 包含

如果函数中的参数可以作为源字符串的子串,那么返回true

 

<#if "piceous"?contains("ice")>It contains "ice"</#if>

 3.19matches 匹配


 

3.20number 数字格式

字符串转化为数字格式。这个数字必须是你在FTL中直接指定数值的格式。也就是说,它必须以本地独立的形式出现,小数的分隔符就是一个点。此外这个函数认识科学记数法。(比如"1.23E6","1.5e-8")。

如果这恶搞字符串不在恰当的格式,那么在你尝试访问这个函数时,错误会抛出并中止模板的处理。

3.21replace 替换

在源字符串中,用另外一个字符穿来替换原字符串中出现它的部分。它不处理词的边界。

 

${"this is a car acarus"?replace("car", "bulldozer")}

 3.22rtf 富文本


 

字符串作为富文本(RTF 文本),也就是说,下列字符串:

 \替换为\\

 {替换为\{

 }替换为\}

3.23url URL转义

在URL之后的字符串进行转义。这意味着,所有非US-ASCII的字符和保留的URL字符

${"this is a car acarus"?replace("car", "bulldozer")}

this is a bulldozer abulldozerus

${"aaaaa"?replace("aaa", "X")}

Xaa

将会被%XX形式来转义。例如:

3.24split 分割

它被用来根据另外一个字符串的出现将原字符串分割成字符串序列

3.25starts_with 以…开头

3.26trim 修整字符串

去掉字符串首尾的空格

3.27upper_case 大写形式

3.28xhtml XHTML格式

字符串作为XML格式文本输出,下面这些:

 <替换为&lt;

 >替换为&gt;

 &替换为&amp;

 "替换为&quot;

 '替换为&apos;

4.处理数字内建函数

4.1string(当用作是数值类型时) 数字转字符串

 

<#assign x=42>
${x}
${x?string} <#-- the same as ${x} -->
${x?string.number}
${x?string.currency}
${x?string.percent}
${x?string.computer}

 4.2round,floor,ceiling 数字的舍入处理


 

5.处理日期的内建函数

5.1string(当用作日期值时)日期转字符串

 

${openingTime?string.short}
${openingTime?string.medium}
${openingTime?string.long}
${openingTime?string.full}

 5.2date,time,datetime (当使用日期值时)


 

这些内建函数用来指定日期变量中的哪些部分被使用:

 date:仅仅年,月和日的部分被使用。

 ime:仅仅时,分,秒和毫秒的部分被使用。

 datetime:日期和时间量部分都使用

6.处理布尔值的内建函数

以foo?string:这样会使用代表true和false值的默认字符串来转换布尔值为字符串。默认情况,true被翻译为"true",而false被翻译为"false"

7.处理序列的内建函数

7.1 first 第一个子变量

序列的第一个子变量。如果序列为空,那么模板处理将会中止。

7.2 last 最后一个子变量

序列的最后一个子变量。如果序列为空,那么模板处理将会中止。

7.3seq_contanis 序列包含…

seq_前缀在这个内建函数中是需要的,用来和contains区分开。contains函数用来在字符串中查找子串(因为变量可以同时当作字符串和序列)。

辨别序列中是否包含指定值。它包含一个参数,就是来查找的值。

 

<#assign x = ["red", 16, "blue", "cyan"]>
"blue": ${x?seq_contains("blue")?string("yes", "no")}
"yellow": ${x?seq_contains("yellow")?string("yes", "no")}
16: ${x?seq_contains(16)?string("yes", "no")}
"16": ${x?seq_contains("16")?string("yes", "no")}

 7.4seq_index_of 第一次出现…时的位置


 

seq_前缀在这个内建函数中是需要的,用来和index_of区分开。index_of函数用来在字符串中查找子串(因为变量可以同时当作字符串和序列)。

返回序列中第一次出现该值时的索引位置,如果序列不包含指定的值时返回-1

 

<#assign colors = ["red", "green", "blue"]>
${colors?seq_index_of("blue")}
${colors?seq_index_of("red")}
${colors?seq_index_of("purple")}


7.5seq_last_index_of 最后一次出现..的位置


7.6reverse 反转序列


7.7size 序列大小


7.8sort 排序


<#assign ls = ["whale", "Barbara", "zeppelin", "aardvark", "beetroot"]?sort>
<#list ls as i>${i} </#list>

 8.

eval 求值

这个函数求一个作为FTL表达式的字符串的值。比如"1+2"?eval返回数字3。


has_content 是否有内容


如果变量(不是Java的null)存在而且不是“空”就返回true,否则返回false


10.is_... 判断函数族


is_string



字符串



is_number



数字



is_boolean



布尔值



is_date



日期(所有类型:仅日期,仅时间和时间日期)



is_method



方法



is_transform



变换



is_macro





is_hash



哈希表



is_hash_ex



扩展的哈希表(也就是支持?keys和?values)



is_sequence



序列



is_collection



集合



is_enumerable



序列或集合



is_indexable



序列



is_directive



指令的类型(比如宏,或TemplateDirectiveModel,TemplateTransformModel等)



is_node



节点

标签:index,内置,函数,seq,序列,内建函数,字符串,string
From: https://blog.51cto.com/u_16071779/6193805

相关文章

  • 仿函数
    函数对象(仿函数):重载函数调用操作符本质是一个类仿函数可以作为参数传递谓词返回值为bool类型的仿函数称为谓词一元谓词和二元谓词,一元还是二元看的是参数的数量常用算法for_each(v.begin(),v.end(),func)最后一位传入函数或仿函数transform(v.begin(),v.end(),v2.begin(),......
  • 输入五个int型和五个float型求两个max(数组和重载函数)
    利用数组和函数重载求5个数最大值(分别考虑整数、单精度的情况)。输入格式:分别输入5个int型整数、5个float型实数。输出格式:分别输出5个int型整数的最大值、5个float型实数的最大值。输入样例:在这里给出一组输入。例如:1122666445511.1122.2233.33888.8855.55......
  • 第五节:setState详解、render函数优化、数据不可变、ref获取DOM和组件
    一.        二.        三.         !作       者:Yaopengfei(姚鹏飞)博客地址:http://www.cnblogs.com/yaopengfei/声     明1:如有错误,欢迎讨论,请勿谩骂^_^。声     明2:原创博客请在转载......
  • vue2源码-六、根据render函数生成vnode
    根据render函数生成vnode上文介绍上面已经将模板编译成了render函数,下面就要使用render函数,从而完成渲染的操作:首先,根据render函数生成虚拟节点;然后根据虚拟节点+真实数据生成真实节点。实现mountComponent方法,完成渲染虚拟节点生成封装vm._render方法。Vue.proto......
  • Golang - Option模式(2)(函数选项模式)
    函数式选项模式(FunctionalOptionsPattern)函数式选项模式是一种在Go中构造结构体的模式,它通过设计一组非常有表现力和灵活的API来帮助配置和初始化结构体。优缺点选项模式有很多优点,例如:支持传递多个参数并且在参数发生变化时保持兼容性;支持任意顺序传递参数;支持默认值;方......
  • 函数声明提升
    在条件控制语句中的函数声明解释器在编译阶段无法识别并提升,执行阶段才会被声明存在foo();//TypeError:fooisnotafunctionvara=false;if(a){functionfoo(){console.log("a");}}else{functionfoo(){console.l......
  • Python输出函数需要注意的问题
    问题描述我是使用的print里面的f执行的相关的输出语句,然后就发现str类型的输出就自动带上了括号,就感到挺离谱的问题解决发现使用f进行输出的话,非数字数值的数据就会带上括号(在类里面),可以直接使用print(self.name)直接输出......
  • C语言函数大全-- i 开头的函数
    C语言函数大全本篇介绍C语言函数大全–i开头的函数1.imagesize1.1函数说明函数声明函数功能unsignedimagesize(intleft,inttop,intright,intbottom);获取保存位图像所需的字节数1.2演示示例#include<graphics.h>#include<stdlib.h>#include<s......
  • [3]Python高级特性-【5】高阶函数
    高阶函数是Python中一种强大的编程概念,它允许函数作为参数传递给其他函数,或者作为返回值从函数中返回。在这篇学习教程中,我们将深入了解高阶函数的概念、用法和常见的应用场景。什么是高阶函数?在Python中,函数可以被当作变量一样进行操作,包括作为参数传递给其他函数,或者作为返回值从......
  • 在写Python是要注意初始化函数的书写
    问题来啦!在撰写Python程序的时候,我们一定要注意,Python的初始化函数init的书写,它的名称是init,这样的话,实例化的过程中,我们才能够成功获取到我们在里面输入的数值;我起初就忽视了这个问题,将原本的四个横线写成了这样__init,主要是它也没有报出错误,我也获取不到数值,后来又仔细检查......