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

jak*_*ine 3 javascript

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

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

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

alert(x);
Run Code Online (Sandbox Code Playgroud)

上面的代码什么也没有返回,实际上杀死了其他任何东西的运行(表示错误),但控制台中没有任何东西被抛出.

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

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

CMS*_*CMS 6

你应该使用window.location.href,因为它window.location是一个对象,而不是一个字符串,它有一个search属性,它包含跟随的URL部分?符号,包括?符号.

var str = window.location.href;

var x = str.search(/78203/i);
Run Code Online (Sandbox Code Playgroud)

您还可以使用String.indexOf函数:

var str = window.location.href;

var x = str.indexOf('78203');
Run Code Online (Sandbox Code Playgroud)

它们都会返回第一次出现的搜索字符串(或模式)的字符位置,如果找不到该值,它将返回给您-1.

  • 正如CMS所说,window.location是一个具有"搜索"属性的对象.您正在访问它而不是String的属性. (2认同)