我目前在我的脚本中有这个常规错误消息,我想用更具体的细节替换它。
errorMessage: "Your selected file, {{fileName}}, is not a proper format of {{formats}}"
我想将fileName
替换为他们选择的文件的名称。
这是我到目前为止所做的工作:
validateError(
errorMessage.replace(/{{formats}}/, formatArray)
);
所以我尝试了这个:
validateError(
errorMessage.replace(/{{formats}}/, formatArray),
errorMessage.replace(/{{fileName}}/, inputFile.name)
);
当我运行此时,{{fileName}}以这种方式出现,并且不会被文件名替换。 inputFile
是一个已声明的变量,它已经包含文件数据信息,因此我知道该名称确实存在。
我做错了什么或忽视了什么?
答案 0 :(得分:2)
.replace
函数不会改变字符串(JavaScript中的字符串是不可变的),但会返回一个新字符串。因此,您可以将结果保存到变量或链.replace
调用。此外,由于您使用的是正则表达式,我建议您转义{
,因为它是一个特殊字符,或者仅使用string
。
保存到变量(使用字符串而不是正则表达式):
var formatReplaced = errorMessage.replace('{{formats}}', formatArray);
validateError(formatReplaced.replace('{{fileName}}', inputFile.name));
或链接.replace
次调用(转义特殊的正则表达式字符):
validateError(errorMessage.replace(/\{\{formats\}\}/, formatArray).replace(/\{\{fileName\}\}/, inputFile.name));
我还建议给你的变量更好的名字。在阅读formatArray
时,我认为它是一个数组,直到你提到它与replace函数一起工作。我推荐像userFormat
这样的内容。