问题描述
如果我从特定推荐人那里获得访问者,我会尝试显示正常警报(来自引导程序的标准)。我有我的提醒
<div class="alert alert-warning alert-dismissible fade show" role="alert">
<strong>Bold</strong> This is some text
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
我把它作为触发器
var ref = document.referrer;
if (ref.match(/^https?:\/\/([^\/]+\.)?example\.com\/\?ref=example(\/|$)/i)) {
('.alert').alert();
}
不幸的是,这不起作用,而且我不是正则表达式专家,所以我真的不知道我哪里出错了。感谢您的帮助!
解决方法
由于 ?
不能出现在协议或域中,您可以简单地使用它:
var ref = document.referrer;
if (ref.match(/\?ref=example\b/)) {
('.alert').alert();
}
末尾的 \b
涵盖了您可能有其他参数的情况。如果 ref 参数不是第一个,您可以使用它:/[\&\?]ref=example\b/
如果您还想测试域名,请使用此正则表达式:
/^(https?:\/\/)?[^\/]*?\bexample.com\/\?ref=example\b/