javascript - 在重定向之前使用 JavaScript 检查有效的 url

标签 javascript redirect mobile

如果我使用此方法将移动页面重定向到桌面页面(这显然假设移动页面位于移动子目录中):

if (screen.width >= 400) {
     window.location.href = '../';
}

我可以在重定向之前先检查 URL 是否有效吗?

最佳答案

您可以将url发送到下面的函数,根据返回值您可以知道URL的有效状态。

function validURL(value) {
return /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(value);
}

以上模式不适用于 IP 地址...

关于javascript - 在重定向之前使用 JavaScript 检查有效的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31317971/

相关文章:

Jquery移动数据过滤器字符串长度

javascript - JavaScript/CSS在单击网格时显示相应的div

javascript - 如何将 Prop 传递给 Redux Form 中的 onSubmitSuccess 回调?

javascript - 实现 "less"时,触摸移动仅触发一次,就像在移动设备上滚动一样

javascript - 返回 false 不起作用

ios - 如何在 Swift 中更改 UIDatePicker 的颜色?

ASP.NET 404(未找到页面)重定向并保留原始参数

java - 手动向网站发送 GET 请求。 302重定向错误

redirect - Hapi.js 从 onRequest 重定向

Jquery 响应移动导航到常规导航