首页 > 解决方案 > 如何在不同行中的不同表情符号前面获取文本数据

问题描述

我有很多这样的消息,我如何解析消息以获取该行中的相应文本。

例如:- 这里的消息是这样的。

Where do you live?


1️⃣  Bangalore

2️⃣  Mangalore

3️⃣  None of the above


Choose one option 1,2,3.

在这种情况下,我想要的输出应该是具有给定键和值的映射,以便我可以在我的代码中使用它:-

1 -> Bangalore

2 -> Mangalore

3 -> None of the above

更新:- 添加了对我有用的代码。

标签: node.jsregex

解决方案


这是我最终用来完成工作的代码。

function isNumEmoji(word) {
    var emoji =  ['0️⃣', '1️⃣', '2️⃣', '3️⃣', '4️⃣', '5️⃣', '6️⃣', '7️⃣', '8️⃣', '9️⃣'];
    for (var i = 0; i < 10; i += 1) {
        if (emoji[i] === word) {
            return true;
        }
    }
    return false;
}

function getMcqButtonsText(message) {
    var mcqButtonText = [];
    var sentences = message.split(/\r?\n/);
    for (var i = 0; i < sentences.length; i += 1) {
        var words = sentences[i].split(' ');
        var curSentence = '';
        var isEmojiPrev = false;
        for (var j = 0; j < words.length; j += 1) {
            if (isNumEmoji(words[j])) {
                isEmojiPrev = true;
                curSentence = '';
            } else if (isEmojiPrev === true) {
                curSentence += words[j] + ' ';
            }
        }
        if (isEmojiPrev === true) {
            mcqButtonText.push(curSentence.trim());
        }
    }
    var result = {
        buttonText: mcqButtonText
    };
    return result;
}

这里的数组“buttonText”将包含消息中每个句子中表情符号前面的文本。


推荐阅读