Kettle中JavaScript内置函数说明 | 您所在的位置:网站首页 › lpad函数怎么用 › Kettle中JavaScript内置函数说明 |
本文链接:https://blog.csdn.net/u010192145/article/details/102220563 我们在使用JavaScript组件的时候,在左侧核心树对象栏中可以看到Kettle为我们提供了很多简洁强大的内置函数,帮助我们在写脚本的时候对数据、参数变量等能很轻松的做处理,体验编码的感觉.本篇将详细介绍JavaScript组件中的函数功能 脚本组件包含的函数主要包括六大类,分别是: 字符串类型的函数(String Functions) 浮点型的函数(Numeric Functions) 日期类型函数(Date Functions) 逻辑判断型函数(Logic Functions) 特殊的函数(Special Functions) 文件处理类函数(File Functions)字符串类型函数(String Functions) 顾名思义,字符串类型的函数肯定是针对字符串类型的参数、变量进行处理操作的函数 日期转字符串(date2str) 日期转字符串函数date2str主要有4个方法,分别是: date2str(date):传入日期实例,转换成字符串类型 date2str(date,format):传入日期和格式化参数,进行格式化转换 date2str(date,format,iso):传入日期和参数格式化及ISO代码进行转换,(DE = German, EN = English, FR = France, …) date2str(date,format,iso,zone):传入时区进行格式化,例如北京时区(GMT+8)日期格式化参数format参数类型供参考: yy / yyyy - 06 / 2006 MM / MMM / MMMMM - 11 / Nov / November d / dd - 1 / 01 E / EEEE - Tue / Tuesday hh / HH - 11 / 23 m / mm - 5 / 05 s / ss - 8 / 08代码示例: var dValue = new Date(); writeToLog(date2str(dValue,"dd.MM.yyyy")); writeToLog(date2str(dValue,"dd.MM.yyyy HH:mm:ss")); writeToLog(date2str(dValue,"E.MMM.yyyy","DE")); writeToLog(date2str(dValue,"dd.MM.yyyy HH:mm:ss","EN")); writeToLog(date2str(dValue,"dd.MM.yyyy HH:mm:ss","ZH", "GMT+8")); writeToLog(date2str(dValue,"yyyy-MM-dd HH:mm:ss","ZH", "GMT+8"));以上代码在控制台将会输出如下: 2019/08/19 10:12:56 - JavaScript代码.0 - 19.08.2019 2019/08/19 10:12:56 - JavaScript代码.0 - 19.08.2019 10:12:56 2019/08/19 10:12:56 - JavaScript代码.0 - Mo.Aug.2019 2019/08/19 10:12:56 - JavaScript代码.0 - 19.08.2019 10:12:56 2019/08/19 10:12:56 - JavaScript代码.0 - 19.08.2019 10:12:56 2019/08/19 10:12:56 - JavaScript代码.0 - 2019-08-19 10:12:56转义HTMLescapeHtml(html) 代码如下: var html="我是H2标题"; writeToLog(escapeHtml(html))最终输出 2019/08/19 10:16:13 - JavaScript代码.0 - ;h1;我是H2标题;/h2; 转义SQL(escapeSQL(var)) var str1 = "SELECT * FROM CUSTOMER WHERE NAME='" + escapeSQL("McHale's Navy") + "'"; writeToLog(str1)该函数会把单引号转成双引号,输出结果如下: 2019/08/19 10:18:59 - JavaScript代码.0 - SELECT * FROM CUSTOMER WHERE NAME='McHale''s Navy' 构造定长字符串(fillString(char,length)) 代码示例如下: writeToLog(fillString("x",10)); writeToLog(fillString("A",3));最终会输出10个X和3个A,输出结果如下: 2019/08/19 10:24:08 - JavaScript代码.0 - xxxxxxxxxx 2019/08/19 10:24:08 - JavaScript代码.0 - AAA需要注意的是第一个是一个char类型的单字符,不能是字符串 统计字符串出现频次(getOcuranceString(str,searchStr)) 第一个参数是要搜索的完整字符串,第二个参数是要搜索统计的字符串 代码示例: var sef='2007-09-11'; writeToLog(getOcuranceString(sef,'0')) writeToLog(getOcuranceString(sef,'00'))我们分别统计字符串0和00最终出现的次数,此时,日志最终打印的次数是3和1: 2019/08/19 10:28:45 - JavaScript代码.0 - 3 2019/08/19 10:28:45 - JavaScript代码.0 - 1获取字符串下标索引(indexOf) 获取下标索引主要有2个重构函数,分别是: indexOf(string,subString):获取出现字符串的索引开始位置 indexOf(string,subString,fromIndex);指定开始位置,获取字符串索引开始位置代码示例: var str1= "Hello Pentaho!"; var str2= indexOf(str1, "Pentaho"); var str3= indexOf(str1, "o", 7); writeToLog("Input : " + str1); writeToLog("Index of 'Pentaho' : " + str2); writeToLog("index of 'o', search from position 7 : " + str3);最终控制台输出: 2019/08/19 10:34:16 - JavaScript代码.0 - Input : Hello Pentaho! 2019/08/19 10:34:16 - JavaScript代码.0 - Index of 'Pentaho' : 6 2019/08/19 10:34:16 - JavaScript代码.0 - index of 'o', search from position 7 : 12首字母大写(initCap) 对指定字符串首字母大写处理,来看代码示例: var str1 = "my home"; writeToLog(initCap(str1)); writeToLog(initCap('test a aaa cw')); writeToLog(initCap('myhome'));此时,最终控制台输出如下: 2019/08/19 10:41:27 - JavaScript代码.0 - My Home 2019/08/19 10:41:27 - JavaScript代码.0 - Test A Aaa Cw 2019/08/19 10:41:27 - JavaScript代码.0 - Myhome字符串转小写(lower) 将传入字符串全部转小写 代码如下: var str1= "Hello World!"; var str2= lower(str1); writeToLog("Input:" + str1); writeToLog("Converted to LowerCase:" + str2); writeToLog(lower('DDDHelloSWxss'))响应内容 2019/08/19 10:43:09 - JavaScript代码.0 - Input:Hello World! 2019/08/19 10:43:09 - JavaScript代码.0 - Converted to LowerCase:hello world! 2019/08/19 10:43:09 - JavaScript代码.0 - dddhelloswxss字符串填充左侧(lpad(string,char,length)) 用指定长度的给定字符将字符串填充到左侧 参数定义: 1:传入字符串 2:填充单字符 3:填充单字符长度如果length长度超过给定字符串的长度,将对填充字符串做减法,例如: var str1= "Hello World!"; writeToLog("Lpad:" + lpad(str1, "x",20));此时,最终输出结果为: 2019/08/19 10:46:38 - JavaScript代码.0 - Lpad:xxxxxxxxHello World! 最终的完成长度是20个字符长度,因此填充的单字符x并没有填充20次 如果length长度小于给定字符串的长度,则默认返回原字符串,不做填充,代码示例: var str1= "Hello World!"; writeToLog("Lpad:" + lpad(str1, "x",5));此时最终的输出结果为: 2019/08/19 10:46:38 - JavaScript代码.0 - Lpad:Hello World! 去空字符(ltrim) 从左侧开始去除空字符串 数字转字符串(num2str) 给定数字,转换为字符串,主要有3个构造函数: num2str(num):转换num数字为字符串 num2str(num,format):格式化数字为指定字符串 num2str(num,format,iso):按照本地ISO编码进行格式化代码示例如下: var d1 = 123.40; var d2 = -123.40; writeToLog(num2str(d1)); writeToLog(num2str(d1, "0.00")); writeToLog(num2str(d1, "0.00", "EN")); writeToLog(num2str(d2, "0.00;(0.00)", "EN"));最终控制台输出: 2019/08/19 11:00:17 - JavaScript代码.0 - 123.4 2019/08/19 11:00:17 - JavaScript代码.0 - 123.40 2019/08/19 11:00:17 - JavaScript代码.0 - 123.40 2019/08/19 11:00:17 - JavaScript代码.0 - (123.40)XML保护标签函数转换(protectXMLCDATA) 传入给定字符串,添加标准保护,代码示例 var str1 = "my home"; writeToLog(protectXMLCDATA(str1));此时,将会给变量str1加上保护标签 2019/08/19 11:02:09 - JavaScript代码.0 -移除字符串中CRLF字符(removeCRLF(str)) 给定字符串中删除CR END LF的字符串 替换字符串(replace) 替换字符串主要包括两个构造函数: replace(str,searchStr,replaceStr):从指定字符串中查询,然后替换 replace(str,firstSearch,firstReplace,secondSearch,SecondReplace...):无限查询替换代码示例如下: var str1 = "Hello World, this is a nice function"; var str2 = replace(str1,"World", "Folk"); writeToLog(str2); var str2 = replace(str1,"World", "Folk", "nice","beautifull"); writeToLog(str2);最终输出: 2019/08/19 11:10:21 - JavaScript代码.0 - Hello Folk, this is a nice function 2019/08/19 11:10:21 - JavaScript代码.0 - Hello Folk, this is a beautifull function字符串右侧填充(rpad(string,char,length)) 使用方法同lpad,只是一个是左侧,一个是右侧 去除空字符(右侧)(rtrim) 正则切分(str2RegExp) 出入一个正则表达式,对string字符串进行Split操作.代码如下: var strToMatch = "[email protected]"; var strReg = "^(\\w+)@([a-zA-Z_]+?)\\.([a-zA-Z]{2,3})$"; var xArr = str2RegExp(strToMatch, strReg); if ( xArr != null ) { for(i=0;i |
CopyRight 2018-2019 实验室设备网 版权所有 |