正确的正则表达式来查找和替换转义的 UTF-8 字符串
Proper Regex to find and replace escaped UTF-8 strings
(已编辑)我正在读取一个JSON文件,其中包含一些编码如下的UTF-8字符:"'uf36b
"。我正在尝试编写一个正则表达式以将其转换为看起来像" 🍫
"的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);
这将仅对字符串中的非 ASCII 或不可打印的 ASCII 字符以及任何%
字符调用escape()
。
然后,您可以使用var str = escaped.replace(/%(..)/g,"") + ";";
进行转换,尽管这看起来很奇怪,而且我真的看不出它会如何做任何太有用的事情。 您可能实际上想要如下所示的内容:
var str = escaped.replace(/%(?:u([0-9a-f]{4})|([0-9a-f]{2}))/gi, "&#x$1$2;");
相关文章:
- Javascript 正则表达式替换为转义的反斜杠
- 在JavaScript中将单反斜杠转义替换为双反斜杠
- 替换字符串中所有出现的项并避免RegExp转义
- 如何在jquery中用转义符替换html内容
- Javascript转义全局替换
- 替换转义字符中的单个反斜杠
- 如何转义 JavaScript 正则表达式替换字符
- 正确的正则表达式来查找和替换转义的 UTF-8 字符串
- Javascript 替换未转义的斜杠
- 防止替换 JavaScript 正则表达式中的转义序列
- 为什么使用替换来取消转义 html 标签也会去除所有其他 html 标签
- 避免匹配/替换字符串的自定义转义部分
- 如何将双引号替换为其转义
- 是否有js函数将xml特殊字符替换为转义序列
- 如何查找字符串中的引号并将其替换为转义符
- 在正则表达式替换字符串中转义$
- 更有效地替换页面上转义的unicode字符
- JS:用另一个单词替换链接.嵌套引号+转义码
- javascript替换转义符”;使用Json解析
- 搜索并替换转义的 HTML