如果需要,使用正则表达式向字符串添加前导斜杠和尾随斜杠

1ve*_*ven 3 javascript regex

我遇到一个问题,如果字符串没有斜杠,我需要添加前导斜杠和尾随斜杠,或者如果字符串已经有斜杠,则不执行任何操作。

例如:

"/path" => "/path/"

"path/" => "/path/"

"path" => "/path/"

"/path/" => "/path/"

"/" => "/"

"" => "/"
Run Code Online (Sandbox Code Playgroud)

我尝试使用这个正则表达式,但它没有添加尾部斜杠:

'/path'.replace(/(^\/?)|(\/?$)/, '/'); // output is "/path"
Run Code Online (Sandbox Code Playgroud)

Ric*_*ock 7

[感谢德米特里!]

这适用于您的前 5 个案例:

string.replace(/^\/?([^\/]+(?:\/[^\/]+)*)\/?$/, '/$1/');
Run Code Online (Sandbox Code Playgroud)

然后,您将得到空字符串,您可以使用 OR 运算符 ( ||) 来处理该字符串:

string.replace(/^\/?([^\/]+(?:\/[^\/]+)*)\/?$/, '/$1/') || '/';
Run Code Online (Sandbox Code Playgroud)

片段:

string.replace(/^\/?([^\/]+(?:\/[^\/]+)*)\/?$/, '/$1/');
Run Code Online (Sandbox Code Playgroud)