gpt4 book ai didi

javascript - 从文件名javascript中删除非法字符

转载 作者:行者123 更新时间:2023-11-30 10:09:19 24 4
gpt4 key购买 nike

我看过关于这个主题的各种帖子,但是当我执行以下操作时,我得到了一个奇怪的结果:

var dirtyString = '<>I\really|\re\ad?"the/wh\ole*:da|\y?.'
var cleanString = dirtyString.replace(/[\/:*?"<>|.]/g, "");
console.log(cleanString);

它删除了所有非法字符,但“r”字母也被删除了。在控制台日志中,我得到“Ieallyeadthewholeday” 似乎“r”之前的“\”删除了“r”。 “\”并没有删除它之前出现的其他字母。我错过了什么吗?

最佳答案

如果您尝试 console.log(dirtyString),您还会看到您的“r”也“丢失”了。

这是因为 '\r' 实际上是 Carriage Return 字符(代码 13)的转义序列。你的 replace() 对它没有任何作用。它仍然存在,只是没有显示。尝试使用 String.charAt()String.charCodeAt(),您会发现字符仍然存在。

作为旁注,您正在尝试删除“列入黑名单”的字符,而列入黑名单几乎从来都不是正确的方法。正如您在自己的案例中看到的那样,您忘记了将 '\r' 字符(以及许多其他字符)列入黑名单。更安全的是白名单。例如,您可能决定只接受拉丁字母和数字,然后删除所有未列入白名单的内容:var cleanString = dirtyString.replace(/[^a-z0-9]/gi, ""); .

关于javascript - 从文件名javascript中删除非法字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27412612/

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