javascript - 带有正则表达式的变量在js中无法识别

标签 javascript regex variables undefined

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

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

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

当我用 slush 搭建它的脚手架并且它位于模板文件夹中时,我收到一条错误消息,提示未定义“匹配”。 我的猜测是 reg 表达式没有被正确解释

感谢您的帮助! 纳文

最佳答案

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

当您不使用 Slush 生成时,您的代码将保持不变并且可以工作。

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

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

关于javascript - 带有正则表达式的变量在js中无法识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48236314/

相关文章:

java - 被困在访问非最终变量上?

javascript - 从 Web api 获取数据时出现问题

javascript - "TypeError: Cannot read property ' 余额 ' of undefined"。不确定哪里出了问题

javascript - 我如何使用 javascript/jquery 知道给定的字符串是十六进制、rgb、rgba 还是 hsl 颜色?

php - 仅用新行替换第一次出现的多个空格

bash - 局部变量 `unset` 的奇怪行为

javascript - 如何将带有 HTML 实体的字符串转换为规范化形式?

javascript - AngularJS:来自 Controller 的访问指令

java - 基于Java模式分割字符串

python - 在Python中初始化两个变量以指向相同的引用