首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在文本中找到私有字符utf8?

如何在文本中找到私有字符utf8?
EN

Stack Overflow用户
提问于 2020-06-30 15:51:44
回答 1查看 153关注 0票数 1

在UTF-8编码表和Unicode字符中,我使用了专用辅助使用区域,因为只有一个字符,我确信它们不会在任何文本中使用。事实是现在我需要在短信里找到他们。下面是一个基本的例子:

代码语言:javascript
运行
复制
\u{f0001} hahrehr \u{f0002} eryteryte \u{f0003}\n yfukguk\u{f0004}\nggikggk

你可以看到……}是我的特殊角色。如果我们console.log这个文本:

代码语言:javascript
运行
复制
console.log("\u{f0001} hahrehr \u{f0002} eryteryte \u{f0003}\n yfukguk\u{f0004}\nggikggk</");

现在我需要一些东西来找到所有那些特殊的焦炭。我想到了regexp,但我不知道如何处理\u{f.}被不同解释的事实。

我知道我的问题不是很清楚,但我采取任何可以帮助我的想法。

EN

Stack Overflow用户

回答已采纳

发布于 2020-06-30 16:29:08

三个私人用途地区

  • 一个在基本的多语言平面,\uE000-\uF8FF
  • 飞机15\u{F0000}-\u{FFFFD},和
  • 飞机16\u{100000}-\u{10FFFD}.

你可以用

代码语言:javascript
运行
复制
/[\uE000-\uF8FF\u{F0000}-\u{FFFFD}\u{100000}-\u{10FFFD}]/gu

若要将这些字符的所有出现与符合ES6的正则表达式匹配,请执行以下操作。

请参阅Regex改性剂/u在JavaScript?了解有关u修饰符的更多信息。在这里,有必要支持\u{XXXXX}表示法。

符合ES5的模式是

代码语言:javascript
运行
复制
/(?:[\uE000-\uF8FF]|[\uDB80-\uDBBE\uDBC0-\uDBFE][\uDC00-\uDFFF]|[\uDBBF\uDBFF][\uDC00-\uDFFD])/g

要获得匹配的代码点的十六进制代码数组,请使用一些额外的JavaScript代码:

代码语言:javascript
运行
复制
const str = "\u{f0001} hahrehr \u{f0002} eryteryte \u{f0003}\n yfukguk\u{f0004}\nggikggk</";
const regex = /[\uE000-\uF8FF\u{F0000}-\u{FFFFD}\u{100000}-\u{10FFFD}]/gu;
console.log(
  str.match(regex).map(x => Array.from(x)
    .map((v) => v.codePointAt(0).toString(16))
    .map((hex) => "0000".substring(0, 4 - hex.length) + hex))
);

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62661373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档