请在为我发出正确答案之前停止标记为重复问题。 这篇文章不是某人在谷歌上炫耀他的粗略搜索技能的地方。
简单的reg exp不是注入js变量的问题。但是像下面那样复杂的呢?
我有一个reg表达式来检查URL是否来自example.com域。
^(https?:\/\/(.+?\.)?example\.com(\/[A-Za-z0-9\-\._~:\/\?#\[\]@!$&'\(\)\*\+,;\=]*)?)
现在我要创建一个函数isValidDomainURL(url, domain)
我希望在上面的表达式中使用example\.com
替换domain
如何在其中使用js变量创建一个reg表达式?
答案 0 :(得分:1)
您可以使用RegExp构造函数。
var theVariable = "Hello"
var theRegex = new RegExp("." + theVariable + ".");
使用您的特定网址,它将类似于以下内容。
var domain = "somedomain.com";
var theRegex = new RegExp("^(https?:\/\/(.+?\\.)?" + domain + "(\/[A-Za-z0-9\\-\\._~:\/\\?#\\[\\]@!$&'\(\)\*\+,;\\=]*)?)")
然后您可以在任何地方使用该正则表达式,或者根据需要创建具有不同域的新正则表达式。