我正在尝试重命名文档,我想删除上一个'\'
之后的所有内容,然后再给它一个名字。
我是这样做的,但它似乎没有起作用:
var newDocName = documentPath.replace(/\/$/, '');
var newDocName = newDocName + "\test.pdf";
第一行代码后,'\'
不会被删除。
知道我做错了什么吗?
答案 0 :(得分:4)
/\/$/
表示您希望匹配/
,如果它是字符串中的最后一个字符,则意味着此代码将替换最后一个/
if,并且仅当它在最后字符串。
如果您想删除上一个\
之后的内容,那么您可以使用split
的组合来分割\
上的字符串,然后使用slice
来获取除了最后一个元素之外最后,使用join
将它们全部重新组合在一起。
var uri = 'path\\to\\my\\file.ext';
var parts = uri.split('\\');
var withoutFile = parts.slice(0, parts.length - 1);
var putItBackTogether = withoutFile.join('\\');
var voila = putItBackTogether + '\\new-file.name';
console.log(voila);
答案 1 :(得分:1)
正斜线,使用\\ istead。
答案 2 :(得分:0)
尝试将其替换为:
var newDocName = documentPath.replace(/\\/$/, '');
答案 3 :(得分:0)
您的REGEX格式错误:您应该逃避反引号(\
)。
所以它可能是:
var newDocName = documentPath.replace(/[\\/]$/, '');
var newDocName = newDocName + "\\test.pdf";
此正则表达式将在您路径的末尾(\
)搜索/
或$
。您可以使用regex101来测试正则表达式。
当您不需要时,您还应该考虑不使用正则表达式:
var newDocName = documentPath[documentPath.length - 1] == "\\" ? documentPath + "test.pdf" : documentPath + "\\test.pdf";