【问题标题】:How to use split without change text content [duplicate]如何在不更改文本内容的情况下使用拆分[重复]
【发布时间】:2019-01-20 00:41:28
【问题描述】:

我有这样的文字:

let text = ":wink: Is that true? :like: I never heard about that, as I know some country like: VN, Indonesia, ThaiLan".

:wink::like: 是显示表情符号的代码。现在我使用 split 来转换成这样的数组:

const myArray = text.split(':')

结果:

myArray = ["", "wink", " Is that true? ", "like", " I never heard about that, as I know some country like", " VN, Indonesia, ThaiLan"]

如您所见,字符 ':' 消失了,如何在从文本转换为数组时保留 ':',在这种情况下,我期望的结果应该是:

myArray = [":wink:", " Is that true? ", ":like:", " I never heard about that, as I know some country like:", " VN, Indonesia, ThaiLan"]

【问题讨论】:

  • 这个数组真的是你的目标,还是你的目标是用表情符号替换 :wink::like:? (构建该数组可能不是执行后者的正确方法。)
  • 你想把VN, Indonesia, ThaiLan放在最后吗?
  • stackoverflow.com/questions/51378198/… 这是我的主要问题:D

标签: javascript


【解决方案1】:

尝试改用match:匹配冒号,后跟非冒号,后跟最后一个冒号,或者匹配任何直到:word:的点:

let text = ":wink: Is that true? :like: I never heard about that, as I know some country like: VN, Indonesia, ThaiLan";
console.log(text.match(
  /:\w+:|.+?(?=:\w+:|$)/g
));

【讨论】:

  • 这会从country like: 中删除冒号,这可能不行。
  • 如果这样的文字::tongue-out:sdasd:unlike:dsad:sleepy:dad 结果是:[":tongue-out", ": sdasd:", "unlike", ":dsad:", "sleepy:dad"] 而且它不显示表情符号。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-09
  • 1970-01-01
  • 2012-06-08
  • 1970-01-01
  • 2018-12-03
相关资源
最近更新 更多