我发现在地址栏中查找特定值是不可能的。
var str = window.location;
//var str = "http://www.website.com/78203/";
var x = str.search(/78203/i);
alert(x);
上面的代码没有返回任何内容,实际上停止了其他所有的运行(表明出现了错误),但控制台中并未抛出任何内容。
如果移除注释,则可以正常运行,返回一个大于-1的值(表示已找到某些内容)。
显然,我没有正确理解这个问题,有人能帮帮我吗?
我发现在地址栏中查找特定值是不可能的。
var str = window.location;
//var str = "http://www.website.com/78203/";
var x = str.search(/78203/i);
alert(x);
window.location.href
,因为window.location
是一个对象而不是字符串,它有一个search
属性,其中包含跟随问号符号的URL的部分,包括问号符号。var str = window.location.href;
var x = str.search(/78203/i);
您还可以使用String.indexOf函数:
var str = window.location.href;
var x = str.indexOf('78203');
它们都将返回搜索到的字符串(或模式)的第一个出现位置,并且如果未找到该值,它将返回-1
。
window.location
是一个对象,而 search
只是字符串的一个方法,因此在对其进行任何字符串操作之前,需要将其转换为字符串。
var str = window.location.toString();
var x = str.search(/78203/i);
http://www.w3schools.com/jsref/obj_location.asp
您可以访问window.location.path
或window.location.port
等内容。您甚至可以使用window.location.hash
获取锚点。