如何在字符串中添加 '#' 符号/表情符号,以便在调用 `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_time
或print#$message
之类的动作的一部分。在这种情况下,动作是print#Enter #time to check time
。因此,这将动作分为 3 个部分。但实际上有两部分 - 动作名称和参数
【参考方案1】:
这里的解决方案是切换到具有不同 unicode U+FF03
的全角散列符号,而半角散列符号(与键盘上的散列符号相同)具有 unicode U+0023
【讨论】:
这不是一个解决方案,它充其量只是一种解决方法。这两个字符中的任何一个仍然可以作为参数出现。以上是关于如何在字符串中添加 '#' 符号/表情符号,以便在调用 `split('#')` 方法时不会拆分字符串?的主要内容,如果未能解决你的问题,请参考以下文章