gpt4 book ai didi

javascript - 从 HTML 编码的 UNIX 路径中剥离文件名

转载 作者:行者123 更新时间:2023-12-03 03:11:53 24 4
gpt4 key购买 nike

我正在使用 Express 和 Google Datastore 编写 NodeJS 应用程序。我正在尝试从 UNIX 路径获取文件名。该路径以 HTML 编码格式存储在数据库中。

这是未编码的路径:

/toplevel/example/text123.txt

以下是将路径以 HTML 编码格式存储在数据库中的方式:

/toplevel/example/test123.txt

由于路径是 HTML 编码的,因此此行不起作用。

let filename_only = requested_filepath_unescaped.split('/').pop().toString();

我也尝试过按编码字符进行拆分,但这也不起作用(可能是因为拆分不适用于多个字符?)

let filename_only = requested_filepath_unescaped.split('&#x2F').pop().toString();

按原样拆分字符串或将 HTML 解码回未编码字符串的最佳方法是什么?

最佳答案

嗯, split 适用于多个字符,所以我不知道你尝试时出了什么问题。

但是如果你可以使用 jQuery,你也可以像这样解码 html:

var htmlDecoded = $('<div />').html(htmlEncoded).text()

之后您可以按“/”进行拆分。

(我给出的代码在内存中创建了一个div标签(它没有添加到DOM,即网页),之后它设置了它的html,它会自动解码html实体。

编辑:由于我不确定OP的问题是什么,并且由于声誉低而无法发表评论,因此我在这里给出更多建议。

也许您调用 split 的变量并不是真正的字符串对象。首先尝试转换为字符串:

var filename = filepath.toString().split('&#x2F;');

其他选择是使用正则表达式,但我不知道到底是什么解决了这个问题,但可能值得尝试。

var filename = filepath.toString().split(/&#2F;/);

EDIT2:在 Chrome v62 和 Node v6.11.4 中测试并工作。

关于javascript - 从 HTML 编码的 UNIX 路径中剥离文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46918938/

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