最后'\'无效后删除所有内容

时间:2017-02-13 17:01:56

标签: javascript regex

我正在尝试重命名文档,我想删除上一个'\'之后的所有内容,然后再给它一个名字。

我是这样做的,但它似乎没有起作用:

var newDocName = documentPath.replace(/\/$/, '');
var newDocName = newDocName + "\test.pdf";

第一行代码后,'\'不会被删除。

知道我做错了什么吗?

4 个答案:

答案 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";