如何使用javascript和window.location解析Web浏览器地址?

时间:2009-10-27 17:38:10

标签: javascript

我发现无法在地址栏中搜索特定值。

var str = window.location;
//var str = "http://www.website.com/78203/";

var x = str.search(/78203/i);

alert(x);

上面的代码没有返回任何内容,实际上会杀死其他任何东西(表示错误),但控制台中没有任何内容。

如果你删除评论,它运行正常,返回一个大于-1的值(意味着找到了一些东西)。

这显然是我无法正确理解的事情,有人可以帮助我吗?

4 个答案:

答案 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.pathwindow.location.port等。您甚至可以使用window.location.hash来获取主播。