用于Javascript网站的正则表达式

时间:2017-08-05 08:38:04

标签: javascript regex

嘿伙计们能帮帮我吗?现在,我有一个这样的代码:

<script>
var ref = document.referrer; 
if (ref.search(/^https?:\/\/([^\/]+\.)?website\.com(\/|$)/i))
{ 
    alert("**...***");
    window.location.href = "http://www.website.com";

}
</script>

它会跟踪来自website.com的推介,但不会追踪来自www.website.com的推介,这就是为什么代码会一次又一次地继续进行。

你能帮助我并教我如何添加一个&#34; www。&#34;正则表达式?

3 个答案:

答案 0 :(得分:1)

根据documentationsearch方法返回

  

正则表达式与给定字符串之间的第一个匹配的索引;如果没有找到,-1。

您正在测试true或false,但如果索引为0,则等于false。

测试-1值。

&#13;
&#13;
var ref = "http://www.website.com"; 
if (ref.search(/^https?:\/\/([^\/]+\.)?website\.com\/?$/i) !== -1 ) { 
    //                                             here ___^^^^^^
    console.log('Match');
} else {
    console.log('No match');
}
&#13;
&#13;
&#13;

答案 1 :(得分:0)

首先,有一些像regexpal这样的工具,您可以在线检查和测试正则表达式,还有很多文档和相应的网站。

我会尝试类似:ref.search(/^https?:\/\/([^\.]+\.)?website\.com(\/.*|$)?/i)

ref.toLowerCase.indexOf('http://www.website.com') === 0检查它是否确实是这样(或不是)......

答案 2 :(得分:0)

试试这个

  

(http(s)?://)?([\ w-] +。)+ [\ w-] +(/ [\ w-;,。/?%&amp; =] *)?< / p>

将匹配

www.google.co
www.google.com
google.com
google.co.in
googgle.Net
www.google.com
http://www.google.com
https//gogle.com