我发现无法在地址栏中搜索特定值。
var str = window.location;
//var str = "http://www.website.com/78203/";
var x = str.search(/78203/i);
alert(x);
上面的代码没有返回任何内容,实际上会杀死其他任何东西(表示错误),但控制台中没有任何内容。
如果你删除评论,它运行正常,返回一个大于-1的值(意味着找到了一些东西)。
这显然是我无法正确理解的事情,有人可以帮助我吗?
答案 0 :(得分:6)
你应该使用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
。
答案 1 :(得分:2)
window.location
实际上是Location object,而不是字符串。如果用var str = window.location.href
替换代码会发生什么?
答案 2 :(得分:1)
window.location
是一个对象,search
只是一个字符串的方法,因此需要先将其转换为字符串,然后才能对它执行任何字符串操作。
var str = window.location.toString();
var x = str.search(/78203/i);
答案 3 :(得分:-1)
浏览器已经为您解析了该位置。
http://www.w3schools.com/jsref/obj_location.asp
您可以访问window.location.path
或window.location.port
等。您甚至可以使用window.location.hash
来获取主播。