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