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

本文介绍系统函数及字符串如何组合嵌套使用。

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

  • 参数化的部分需要系统函数(${sys.random(1,20)})搭配字符串(abc),且字符串在前,则组合使用方式为=abc${sys.random(1,20)}
  • 参数化的部分需要系统函数(${sys.random(1,20)})搭配另一个系统函数(${sys.select("a","b","c")}),则组合使用方式为=${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")}