为 google 工作表脚本删除 javascript 中除表情符号以外的所有内容

Removing everything but emojis in javascript for google sheets script

嘿,所以我需要使用 googlespreadsheets (javascript) 创建一个脚本,该脚本接受一个单元格的输入并将该单元格中的所有表情符号输出到所选单元格中。我想通过从单元格文本中删除除表情符号之外的所有内容来做到这一点。这是因为如果我尝试只匹配表情符号,我的输出是不正确的。

我正在使用这个正则表达式来定位表情符号。

  var re = /[\u1F60-\u1F64]|[\u2702-\u27B0]|[\u1F68-\u1F6C]|[\u1F30-\u1F70]|[\u2600-\u26ff]|[\uD83C-\uDBFF\uDC00-\uDFFF]+/gi;

我怎样才能从文本中删除除带有此正则表达式的项目之外的所有内容。或者我怎样才能删除除 unicode 以外的所有内容。我已经尝试了所有其他建议,但输出不正确或不适用于电子表格。

目前我有:

function SHOW_EMOJIS(s) {
   var re = /[\u1F60-\u1F64]|[\u2702-\u27B0]|[\u1F68-\u1F6C]|[\u1F30-\u1F70]|[\u2600-\u26ff]|[\uD83C-\uDBFF\uDC00-\uDFFF]+/gi;
   var result = s.match(re).toString();

   return result;
}

这 returns 所有表情符号,但不是看到:⚠️❄️‍⚕️☃️ 我看到了 ⚠,❄,⚕,☃, 。医生作为两个单独的表情符号字符返回。

为什么不试试内置的 REGEX,而不是自定义函数?

=REGEXREPLACE(A5,"[[:print:]]","")

根据 Google Re2

无法打印表情符号

要替换 [A1] 中的所有表情符号,请尝试:

=REGEXREPLACE($A,"[©®‼⁉™ℹ↔-↙↩-↪⌚-⌛⌨⏏⏩-⏳⏸-⏺Ⓜ▪-▫▶◀◻-◾☀-☄☎☑☔-☕☘☝☠☢-☣☦☪☮-☯☸-☺♀♂♈-♓♟-♠♣♥-♦♨♻♾-♿⚒-⚗⚙⚛-⚜⚠-⚡⚧⚪-⚫⚰-⚱⚽-⚾⛄-⛅⛈⛎-⛏⛑⛓-⛔⛩-⛪⛰-⛵⛷-⛺⛽✂✅✈-✍✏✒✔✖✝✡✨✳-✴❄❇❌❎❓-❕❗❣-❤➕-➗➡➰➿⤴-⤵⬅-⬇⬛-⬜⭐⭕〰〽㊗㊙-----------------------------------------------#️⃣*️⃣0️⃣1️⃣2️⃣3️⃣4️⃣5️⃣6️⃣7️⃣8️⃣9️⃣]","")

相关答案:


=REGEXREPLACE(A5,"[[:print:]]","") 是一个很好的解决方案,但有一些缺点:

  • 它留下这些字符:0 1 2 3 4 5 6 7 8 9 # * 在各自表情符号的位置 0️⃣ 1️⃣ 2️⃣ 3️⃣ 4️⃣ 5️⃣ 6️⃣ 7️⃣ 8️⃣ 9️⃣ #️⃣ *️⃣
  • 它还会替换其他不可打印的字符。

Test sheet