从字符串调用函数并替换现有字符串中的结果



我有下面的字符串,其中包含一些函数的名称,所以我需要调用这些函数&无论函数的值/结果是什么,都需要在现有字符串中替换(而不是函数名)

我的字符串

my_computer/project_folder/customer=getCustomer()/getCsvFileName()/controller=getControllerName()

需要输出如下:

my_computer/project_folder/customer=Customer1/userData.csv/controller=myController

我从使用下面的字符串得到函数名:

let functions = parquetUploadPath.split("/")
.filter(element => element.endsWith("()"))
.map(element => element.split("=")[1] ?? element.split("=")[0]);  

不能这样使用函数,但可以在字符串中使用变量。

const customer = getCustomer(); const csvFileName = getCsvFileName();
const controllerName getControllerName();
const myString = `my_computer/project_folder/customer=${customer}/${csvFileName}/controller=${controller}`;

但是,如果您需要从字符串中推断函数,则需要解析字符串。在这种情况下,我建议您用分隔符来标识函数。使用eval()运行函数,然后更新字符串。

我不知道我是否误解了什么,但是你可以使用模板文字

`my_computer/project_folder/customer=${getCustomer()}/${getCsvFileName()}/controller=${getControllerName()}`