从URL中删除重复的正斜杠

时间:2014-06-24 08:10:28

标签: jquery regex

如何从网址中删除重复的正斜杠,但保留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);

我想删除所有重复的斜杠。

5 个答案:

答案 0 :(得分:16)

您可以使用:

abc.replace(/([^:]\/)\/+/g, "$1");

<强> Working Demo

更新: Already answered by Halcyon

答案 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);

DEMO

答案 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(&#39;#/ +#&#39;,&#39; /&#39;,$ path);