如果我是正确的,以下代码将只匹配完全显示的网址。
但是,如果您想要识别子域以及包含各种不同查询字符串的网址(换句话说,包含此域的任何地址),它会是什么样子:
var url = /test.com/
if (window.location.href.match(url)){
alert("match!");
}
答案 0 :(得分:1)
答案 1 :(得分:0)
不,您的模式实际上会匹配包含test.com
的所有字符串。
答案 2 :(得分:0)
常规表达/test.com/
表示匹配字符串中任意位置的test[ANY CHARACTER]com
最好使用example.com作为示例链接。所以我用例子取代了测试。
一些示例匹配可能是
http://example.com
http://examplexcom.xyz
http://example!com.xyz
http://example.com?q=123
http://sub.example.com
http://fooexample.com
http://example.com/asdf/123
http://stackoverflow.com/?site=example.com
答案 3 :(得分:0)
我认为您需要使用/g
。 / g启用“全局”匹配。使用replace()方法时,请指定此修饰符以替换所有匹配项,而不是仅替换第一个匹配项:
var /test.com/g;
答案 4 :(得分:0)
如果你想测试一个URL是否有效,这就是我使用的那个。相当复杂,因为它也照顾数字域和&其他一些特点:
var urlMatcher = /(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?/;
注意参数和锚点等...不要让我解释详细信息。