【发布时间】:2018-09-12 15:11:43
【问题描述】:
我在 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: Unexpected token (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?
【问题讨论】:
-
你可能只需要转义你的 /s
-
你能举个例子吗?哪个/s?
-
好吧,因为您使用 / 作为分隔符,所以您需要使用 \ /^(https?:\/\/(www.)?)[a- 转义正则表达式中的任何内容z0-9]+([-.]{1}[a-z0-9]+)*.[a-z]{2,5}(:[0-9]{1,5})?(\/. *)?$/
-
解决了!如果您愿意,请提交答案,我将标记为已接受,否则我可以自行回答。谢谢!
-
你也可以使用
new RegExp(REGEX_VALID_URL);
标签: javascript reactjs webpack babeljs