如何从网址中删除重复的正斜杠,但保留http:
之后的//,以便网址不会中断。
http://localhost//example/author/admin///
应该是
http://localhost/example/author/admin/
我正在尝试这个,但它只删除最后一个斜杠。我想删除所有双
abc = 'http://localhost//example/author/admin///';
clean_url = abc.replace(/\/$/,'');
alert(clean_url);
以下仅检查三个斜杠。
clean_url = abc.replace("///", "");
alert(clean_url);
我想删除所有重复的斜杠。
答案 0 :(得分:16)
答案 1 :(得分:6)
This question has been answered before...
var str = 'http://localhost//example/author/admin///';
var clean_url = str.replace(/([^:])(\/\/+)/g, '$1/');
alert(clean_url);
答案 2 :(得分:0)
我知道那里有不同的答案解决同样的问题,只是另一种方法:)
var s = "http://www.some-url.com//path//to";
var res = s.replace(/(https?:\/\/)|(\/)+/g, "$1$2");
答案 3 :(得分:0)
感谢@Milind Anantwar
我在 Lambda@edge 查看器规则中使用以下内容来修复 URL 中的重复斜杠。
'use strict';
exports.handler = (event, context, callback) => {
// Get request from CloudFront event
var request = event.Records[0].cf.request;
// Extract the URI from the request
var requestUrl = request.uri;
// Match any duplicate double slashes in URL
var redirectUrl = requestUrl.replace(/([^:]\/)\/+/g, "$1");
// Replace the received URI with the URI that includes the index page
request.uri = redirectUrl;
// Return to CloudFront
return callback(null, request);
};
答案 4 :(得分:-1)
要删除额外的正斜杠,以下代码可以正常使用
$ path = preg_replace('#/ +#',' /',$ path);