全部产品
云市场

系统函数及字符串如何组合嵌套使用?

更新时间:2019-08-20 14:50:54

如果参数化的部分(等号右侧)需要系统函数搭配字符串或者另一个系统函数,规则是直接拼接即可,不需要额外的连接字符。参考以下的例子:

  • 在函数前加字符串:

    =abc${sys.random(1,20)}

    =-234${sys.random(1,20)}

  • 两个函数拼接:

    =${sys.random(1,20)}${sys.select("a","b","c")}

如果系统函数的参数中有单双引号,直接使用单引号,双引号需要在前面再加一个双引号。比如需要给一个字符串做md5加密(系统函数是 ${sys.md5("")}),以字符串包含单引号和双引号来分别举例参数化(等号右侧)写法:

  • 需加密字符串是 leo say 'hi' 时:

    =${sys.md5("leo say 'hi'")}

  • 需加密字符串是 leo say "hi" 时:

    =${sys.md5("leo say ""hi""")}

如果系统函数间需要嵌套使用时,不需要额外加双引号,但是函数的参数部分用到了文件参数、有拼接的情况才需要加双引号。参考以下例子:

  • substring 的字符串是直接拼接的情况,需要带双引号:

    =${sys.substring("abc${sys.random(1,20)}", 0, 1)}

  • substring 的字符串是函数所以不需要双引号,但是嵌套的md5里面有拼接就需要双引号:

    =${sys.substring(${sys.md5("${input1}${input2}")},2,5)}

  • 需要给来源于数据文件的参数num2做一个base64的时候,需要加个双引号:

    =${sys.base64("${num2}")}

  • 更复杂的一种情况,函数的参数是字符串,这个字符串是一个json的情况,json里也带了文件参数:

    需要传入函数中的json原文是:{"username":"${username}"} 则函数的嵌套使用如下:

    =${sys.select("{""username"":""${username}""}","blue","green")}