我有以下内容:
var string = 'https://sub.example.com/dir/ https://sub.example.com/dir/v2.5/'
var hostname = 'sub.example.com';
var hostname_match = hostname.replace(/\./g, '\\.');
string.replace(new RegExp('https\:\/\/'+hostname_match+'\/(.*)', 'g'), '/$1');
我想要得到以下内容:
/dir/ /dir/v2.5/
答案 0 :(得分:1)
您只需替换http:// + hostname
:
var string = 'https://sub.example.com/dir/ https://sub.example.com/dir/v2.5/'
var hostname = 'sub.example.com';
let urls = string.split(' ')
.map(u => u.replace('https://'+hostname, ''))
console.log(urls)
// if you want a space-separated string:
console.log(urls.join(' '))
答案 1 :(得分:0)
您可以使用
new RegExp('https://'+hostname_match+'/(\\S*)', 'g')
在这里,.*
被\S*
替换为零个或多个非空白字符。
请参阅JS演示
var string = 'https://sub.example.com/dir/ https://sub.example.com/dir/v2.5/'
var hostname = 'sub.example.com';
var hostname_match = hostname.replace(/\./g, '\\.');
console.log(
string.replace(new RegExp('https://'+hostname_match+'/(\\S*)', 'g'), '/$1')
);
请注意,由于/
不是特殊的正则表达式元字符,因此您无需在构造函数表示法中转义正斜杠。在任何正则表达式上下文中都不必转义冒号。