运行Webpack时有效RegEx中出现意外令牌

时间:2018-09-12 15:11:44

标签: javascript reactjs webpack babel

我已经在react / redux应用程序的util文件中定义了以下RegEx:

这很好,并且如果我将其声明为字符串,则不会导致任何编译失败:

export const REGEX_VALID_URL =
  '^(https?://(www.)?)[a-z0-9]+([-.]{1}[a-z0-9]+)*.[a-z]{2,5}(:[0-9]{1,5})?(/.*)?$';

但是,如果我将其声明为正则表达式文字,例如:

 export const VALID_URL =
      /^(https?://(www.)?)[a-z0-9]+([-.]{1}[a-z0-9]+)*.[a-z]{2,5}(:[0-9]{1,5})?(/.*)?$/;

Webpack将无法编译,并显示以下错误: 模块构建失败:SyntaxError:意外令牌(2:19)

  1 | export const VALID_URL =
> 2 |   /^(https?://(www.)?)[a-z0-9]+([-.]{1}[a-z0-9]+)*.[a-z]{2,5}(:[0-9]{1,5})?(/.*)?$/;
    |                    ^

这里的问题是什么,如何获取webpack将此RegEx视为Aok?

1 个答案:

答案 0 :(得分:3)

由于您使用/作为分隔符,因此您需要使用\

对正则表达式中的任何内容进行转义。
/^(https?:\/\/(www.)?)[a-z0-9]+([-.]{1}[a-z0-9]+)*.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/

应该是您所需要的全部。