【发布时间】: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 个部分。但实际上有两部分 - 动作名称和参数
标签: javascript unicode symbols emoji codepoint