在js中无法识别带有reg表达式的变量

Nav*_*HKA 9 javascript regex variables undefined

我正在尝试使用slush生成模板,我的代码仓库在这里:https: //github.com/NaveenDK/slush-template-generator/blob/master/templates/react-native-app/MediaButtons.js

即使模板文件本身运行正常,当我尝试使用MediaButtons.js文件中的以下行使用slush生成时

 let match = /\.(\w+)$/.exec(filename);
    let type = match ? `image/${match[1]}` : `image`;
Run Code Online (Sandbox Code Playgroud)

我得到一个错误,说明'匹配'没有定义,当我用slush搭建它并且它在templates文件夹中时.我的猜测是reg表达式没有被正确解释

谢谢你的帮助!纳文

Rap*_*Mex 8

当您使用Slush生成时,您的代码会被更改(最小化或您要求它执行的任何操作),但文字模板不会.因此,在运行时,变量match不再被声明,但在评估type文字值时仍然可以访问它.并且引发了错误.

当您不使用Slush生成时,您的代码将保持不变并且有效.

要避免此问题,请更改为:

let match = /\.(\w+)$/.exec(filename);
let type = match ? 'image/'+match[1] : 'image';
Run Code Online (Sandbox Code Playgroud)