avaweb
在我们平常的javaweb开发中,前台页面经常会用到获取url中的参数,大多数程序员可能直接
用window.location.href 获取到当前页面的url,然后再用substring去截取字符串,这样的话很麻烦。
当然我上面所说的是在html的文件中,如果你是用的jsp的话,那就很简单了。用el表达式我们可以很轻松的获取url中的参数:${param.paramName}
好了,言归正传,那如何在html中获取url中的参数了?
我们可以单独封装一个函数来达到这个目的。以后只要是要获取url的参数,直接调用这个函数就可以了。
function get_param(name, url){
if(!url) url = window.location.href;
name = name.replace(/[\[\]]/g,"\$&");
var regex =newRegExp("[?&]"+ name +"(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if(!results) return null;
if(!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g," "));
}
我在后续的文章中,会分享更多更实用的开发小技巧给大家,希望大家多多关注!
JavaScript 提供了许多方法来检索和更改显示在浏览器地址栏中的当前 URL,所有这些方法都使用Location对象,它是对象的一个属性Window。
您可以创建一个具有当前URL的新对象,如下所示:
let loc = window.location;
let url = loc.href;
location属性
Location 接口不继承任何属性,但是实现了那些来自 URLUtils 的属性。
Location.href包含整个URL的一个DOMStringLocation.protocol包含URL对应协议的一个DOMString,最后有一个":"。
Location.host包含了域名的一个DOMString,可能在该串最后带有一个":"并跟上URL的端口号。
Location.hostname包含URL域名的一个DOMString。
Location.port包含端口号的一个DOMString。
Location.pathname包含URL中路径部分的一个DOMString,开头有一个“/"。Location.search 包含URL参数的一个DOMString,开头有一个“?”。
Location.hash包含块标识符的DOMString,开头有一个“#”。
Location.username包含URL中域名前的用户名的一个DOMString。
Location.password包含URL域名前的密码的一个 DOMString。
Location.origin只读包含页面来源的域名的标准形式DOMString。
Location没有继承任何方法,但实现了来自URLUtils的方法。
Location.assign()加载给定URL的内容资源到这个Location对象所关联的对象上。
Location.reload()重新加载来自当前 URL的资源。他有一个特殊的可选参数,类型为 Boolean,该参数为true时会导致该方法引发的刷新一定会从服务器上加载数据。如果是 false或没有制定这个参数,浏览器可能从缓存当中加载页面。
Location.replace()用给定的URL替换掉当前的资源。与 assign() 方法不同的是用 replace()替换的新页面不会被保存在会话的历史 History中,这意味着用户将不能用后退按钮转到该页面。
Location.toString()返回一个DOMString,包含整个URL。 它和读取URLUtils.href的效果相同。但是用它是不能够修改Location的值的。
avaScript 领域的 URL 验证有了新的消息!这么多年开发者因为 JavaScript 没有简便的方法来验证 URL 而一直对其发牢骚,如今有了一个新方法 — URL.canParse()!
URL.canParse('https://www.pixelstech.net'); // true
URL.canParse('www.pixelstech.net'); // false
URL.canParse() 是一种快速判断字符串是否为有效 URL 的方法。但在不要兴奋得太早,写下这篇文章时 URL.canParse() 还不被所有浏览器支持。不过你可以在下面找到最新的浏览器支持信息。
这个静态方法已经包含在core-js中了。
URL.canParse()依赖于与URL()构造函数评估有效 URL 相同的算法。而且由于这两个方法都实现了相同的解析器,并且URL()今天已经得到了良好的支持,你可以遵循使用构造函数来验证 URL 的一般建议。将new URL()放入辅助函数中,检查是否抛出异常,就大功告成了!
function isUrlValid(string) {
try {
new URL(string);
return true;
} catch (err) {
return false;
}
}
isUrlValid('https://www.pixelstech.net'); // true
isUrlValid('www.pixelstech.net'); // false
或者如果你不喜欢一个 isUrlValid()函数,你也可以类似core-js那样实现URL.canParse()。
不i过最后有个问题,什么是有效的 URL?
*请认真填写需求信息,我们会在24小时内与您取得联系。