我有以下代码允许我在我的网站的桌面版和移动版之间切换,
<script type="text/javascript">
if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera
Mini/i.test(navigator.userAgent) ) {
window.location = "http://m.mysite.co.uk";
}
</script>
我最近意识到所有这一切都是将每个人都发送到网站的主页。我挖了一下,发现我可以通过修改上面的内容将特定页面重定向到移动版本,
<script type="text/javascript">
if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
window.location = "http://m.mysite.co.uk" + window.location.pathname;
}
</script>
唯一的问题是URL路径末尾的尾部斜杠导致无法识别URL。
有没有办法在Javascript中删除这个尾部斜杠?
该网站位于旧的Windows 2003服务器上,因此只要有人建议使用URL重写模块,它就是IIS6。
感谢您提出的任何建议。
答案 0 :(得分:1)
只需使用简单的测试并删除尾部斜杠:
$("input:radio[name=layout]").click(function() {
var layout = $(this).val();
cy.layout({ name: layout });
});
答案 1 :(得分:1)
要解决多个斜杠的问题,可以使用此正则表达式删除斜杠,然后使用结果字符串代替window.location.pathname
const pathnameWithoutTrailingSlashes = window.location.pathname.replace(/\/+$/, '');
答案 2 :(得分:0)
要删除/之前/之后,请使用它(虽然不漂亮)
let path = window.location.pathname.replace(/\/+$/, '');
path = path[0] == '/' ? path.substr(1) : path;
答案 3 :(得分:0)
不是 OP 所要求的,但这里有一些正则表达式的变体,具体取决于您的用例。
let path = yourString.replace(/\//g,''); // Remove all slashes from string
let path = yourString.replace(/\//,''); // Remove first slash from string
let path = yourString.replace(/\/+$/, ''); // Remove last slash from string