我需要一些RegEx的帮助,它可能是一个基本的东西,但我找不到一个正确的方法如何做到这一点。请帮忙!
所以,这是我的问题:
我有一个URL列表,由于双斜杠而无效,如下所示:
http://website.com//wp-content/folder/file.jpg
,要解决此问题,我需要删除除第一个后跟冒号(http://
)之外的所有双斜线,因此修复后的网址为:http://website.com/wp-content/folder/file.jpg
。
我需要使用RegExp。
变体1
url.replace(/\/\//g,'/'); // => http:/website.com/wp-content/folder/file.jpg
将替换所有双击(//
),包括第一个,这是不正确的。
答案 0 :(得分:3)
您可以使用
url = url.replace(/(https?:\/\/)|(\/){2,}/g, "$1$2")
请参阅regex demo
注意:如果字符串是整个网址,则可能会使用模式开头的^
锚点。
此模式将匹配并捕获http://
或https://
,并将在带有$1
反向引用的结果字符串中恢复该模式,并且所有其他2个或更多/
的情况将会恢复由(\/){2,}
匹配,因为捕获组不包含量词,因此只会将1次出现放回到结果字符串中。
答案 1 :(得分:1)
查找(^|[^:])/{2,}
替换$1/
分隔:/(^|[^:])\/{2,}/