我在react/redux应用程序的util文件中定义了以下正则表达式:
这工作正常,如果我将其声明为字符串,不会导致任何编译失败:
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 将无法编译,并显示以下错误: 模块构建失败:语法错误:意外的标记 (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?
最佳答案
因为您使用/作为分隔符,所以您需要使用\转义正则表达式中的任何内容
/^(https?:\/\/(www.)?)[a-z0-9]+([-.]{1}[a-z0-9]+)*.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/
应该是您所需要的。
关于javascript - 运行 webpack 时有效正则表达式中出现意外标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52298418/