如何在字符串中添加 '#' 符号/表情符号,以便在调用 `split('#')` 方法时不会拆分字符串?

Posted

技术标签:

【中文标题】如何在字符串中添加 \'#\' 符号/表情符号,以便在调用 `split(\'#\')` 方法时不会拆分字符串?【英文标题】:How can I add '#' symbol/emoji in a string such that it doesn't splits the string when `split('#')` method is called on it?如何在字符串中添加 '#' 符号/表情符号,以便在调用 `split('#')` 方法时不会拆分字符串? 【发布时间】:2022-01-09 07:04:21 【问题描述】:

javascript 中有没有一种方法可以在字符串中显示类似于“#”的符号,这样"Enter #time to check time".split('#') 就不会将其分解成碎片?

它应该返回一个完整的字符串而不是['Enter ','time to check time']

我尝试使用这个“#️⃣”符号代替“#”,但它仍然以某种方式被检测到。在进一步调试中,我发现这个表情符号由 2 个code points 组成,其中第一个转换为 unicode \u0023,类似于“#”符号。因此它拆分了字符串。

这似乎是一个愚蠢的问题,但底层用例非常有趣,但不幸的是,由于机密原因,我无法在这里分享。因此,我们非常感谢任何形式的帮助。

谢谢!

【问题讨论】:

而不是includes('#') 测试与/#[A-Za-z]+/ 之类的正则表达式的匹配。如果典型的主题标签不应该被检测为包含#,那么该字符将如何成为字符串的一部分?后面会有空格吗? 你到底为什么要做.split('#') @DeepakTerse 我看不出您的编辑如何回答我的问题。 为什么字符串被#分割?为什么字符串没有被修改?分裂的目的是什么?难道你不能找到一个不同的字符来分割,或者更好的是,一个不同的字符串格式,例如像 JSON 这样更灵活的? 尝试 (U+FF03, 全角数字符号) 代替#️⃣,后者由3个代码点#组成(U+0023, 数字符号) - (U+FE0F, Variation Selector-16) - (U+20E3, 组合封闭键帽)。 所以基本上,这个字符串是我们说print#$current_timeprint#$message之类的动作的一部分。在这种情况下,动作是print#Enter #time to check time。因此,这将动作分为 3 个部分。但实际上有两部分 - 动作名称和参数 【参考方案1】:

这里的解决方案是切换到具有不同 unicode U+FF03 的全角散列符号,而半角散列符号(与键盘上的散列符号相同)具有 unicode U+0023

【讨论】:

这不是一个解决方案,它充其量只是一种解决方法。这两个字符中的任何一个仍然可以作为参数出现。

以上是关于如何在字符串中添加 '#' 符号/表情符号,以便在调用 `split('#')` 方法时不会拆分字符串?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Azure mysql 数据库中支持表情符号

如何使用python在字符串中查找和计算表情符号?

在android中添加自定义图像作为表情符号

如何清除填充表情符号字符的字体缓存?

如何从字符串中删除表情符号字符?

如何在golang中使用正则表达式替换字符串中的表情符号