js脚本获取日期 kettle_Kettle中JavaScript内置函数说明

我们在使用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 - Java

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值