"/path/" "path/" => "/path/" -6ren">
gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 14:53:09 25 4
gpt4 key购买 nike

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

例如:

"/path" => "/path/"

"path/" => "/path/"

"path" => "/path/"

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

"/" => "/"

"" => "/"

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

'/path'.replace(/(^\/?)|(\/?$)/, '/'); // output is "/path"

最佳答案

[感谢德米特里!]

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

string.replace(/^\/?([^\/]+(?:\/[^\/]+)*)\/?$/, '/$1/');

然后留下空字符串,您可以使用 OR 运算符 (||) 处理该字符串:

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

片段:

var RE = /^\/?([^\/]+(?:\/[^\/]+)*)\/?$/;

console.log('/path'.replace(RE, '/$1/') || '/');
console.log('path/'.replace(RE, '/$1/') || '/');
console.log('path'.replace(RE, '/$1/') || '/');
console.log('/path/'.replace(RE, '/$1/') || '/');
console.log('/'.replace(RE, '/$1/') || '/');
console.log(''.replace(RE, '/$1/') || '/');
console.log('path/with/embedded/slashes'.replace(RE, '/$1/') || '/');

关于javascript - 如果需要,使用正则表达式向字符串添加前导斜杠和尾随斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43836091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com