gpt4 book ai didi

javascript - 用于查找和替换转义的 UTF-8 字符串的正确正则表达式

转载 作者:行者123 更新时间:2023-12-02 18:13:17 26 4
gpt4 key购买 nike

(已编辑)我正在读取一个 JSON 文件,其中包含一些编码如下的 UTF-8 字符:“\uf36b”。我正在尝试编写一个 RegExp 来将其转换为看起来像“🍫”的 HTML 实体。这会在我的 html 页面中正确显示字符。

我无法正确显示应与“\uf36b”关联的字符,尤其是在还包含其他文本的较长句子中时。

如何编写一个正则表达式来替换“\uf4d6”和“\uf36b”等字符串,但保留其他文本?

示例:

var str = "I need \uf36b #chocolate";

这应该转换为:

I need 🍫 #chocolate; 

最佳答案

\uf36b这里是一个代表字符的 Unicode 代码点,应该可以让您的页面支持这样的字符,而无需通过编码为 UTF-8 来转义它们。

话虽如此,可打印的 ASCII 范围是从 \u0020 (空格字符)到 \u007e (波形符),因此您应该能够使用类似以下内容来仅转义您需要的字符:

var escaped = "I need \uf36b #chocolate".replace(/[^\x20-\x7e]+|%/g, escape);

这将调用escape()仅针对字符串中的非 ASCII 或不可打印 ASCII 字符,以及任何 %字符。

然后您可以使用 var str = escaped.replace(/%(..)/g,"&#x1f") + ";";进行转换,尽管这看起来很奇怪,而且我真的看不出它会如何做任何有用的事情。您可能实际上想要如下所示的内容:

var str = escaped.replace(/%(?:u([0-9a-f]{4})|([0-9a-f]{2}))/gi, "&#x$1$2;");

关于javascript - 用于查找和替换转义的 UTF-8 字符串的正确正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19523466/

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