如何在正则表达式中包含变量[重复]

Posted

技术标签:

【中文标题】如何在正则表达式中包含变量[重复]【英文标题】:How to include variable in Regex [duplicate] 【发布时间】:2021-10-07 14:48:35 【问题描述】:

我想在文件上传期间使用正则表达式允许/拒绝具有特定文件类型的文件。

这是我想要实现的工作正则表达式 /(\.|\/)(xlsx)$/i 预期输出。

我想要的不是硬编码文件类型,而是将一个保存文件类型的变量传递给正则表达式。

var fileType = 'xlsx';
var regexText = new RegExp("/(\.|\/)(" + fileType + ")$/i"); 

但是 regexText 的当前输出是 /\/(.|\/)(xlsx)$\/i/ 这与预期的输出不同。如何通过使用没有硬编码的变量来获得与上述相同的输出?有没有不使用正则表达式的解决方案可以提供相同的预期输出?

【问题讨论】:

查看RegExp 构造函数。您不需要前导 /,双转义反斜杠,/i 标志应该作为第二个参数。请注意,您可以将交替编写为字符类。 【参考方案1】:

在调用新的 RegExp 之前尝试为正则表达式行形成字符串

【讨论】:

以上是关于如何在正则表达式中包含变量[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在这个正则表达式中包含“减号”,如何?

EMR 上的猪:如何在 EXTRACT 函数的正则表达式参数中包含分号

正则表达式匹配文本中包含换行符等空白字符如何匹配

如何在正则表达式公式中包含括号作为谷歌表格中公式的一部分

在 Java 正则表达式中包含注释

正则表达式判断字符串中包含数字、大写字符、小写字母、特殊符号中的几种怎么判断?