用HTML的emoji unicode替换输入值

时间:2018-03-31 10:06:45

标签: jquery regex replace emoji

我有以下聊天应用,我想替换包含'&#1F600;'的任何字符串 if ($('#m').val().match(/(\:\))/g)) { $('#m').val() = $('#m').val().replace(/(\:\))/g, '&#1F600;') } ,以便它变成表情符号

到目前为止我所做的并不奏效。我相信我的正则表达式是正确的。

相关摘录:

    <ul id="messages"></ul>
    <form action="">
        <input id="m" autocomplete="off" />
        <button>Send</button>
    </form>
</body>
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
    crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.4/socket.io.js"></script>
<script>
    var socket = io(); // connect to the server
    $(function () {

         if ($('#m').val().match(/(\:\))/g)) {
            $('#m').val() = $('#m').val().replace(/(\:\))/g,'&#1F600;')
         }

        $('form').submit(function () {
            socket.emit('chat message', $('#m').val());
            $('#m').val('');
            return false;
        });

        socket.on('chat message', function (msg) {
            $('#messages').append($('<li>').text(msg));
        });

    });

</script>

背景信息:

public List<PersonalInfo> getAllPatient() {
    final List<PersonalInfo> mPersonalInfoList = new ArrayList<>();
    AppDatabase db = AppDatabase.getAppDatabase(mContext);
    db.patientDao().getAll()
            .flatMapIterable(patientlist -> {
                    List<PersonalInfo> personalInfoList = new ArrayList<>();
                    for (PersonalInfo p : patientlist) {
                        p.setColor(getRandomMaterialColor("400"));
                        personalInfoList.add(p);
                    }
                    return  personalInfoList;
            })
            .toList()
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(result -> {
                synchronized (mPersonalInfoList) {
                    mPersonalInfoList.addAll(result);
                    mPersonalInfoList.notifyAll();
                }
              }
            );

    synchronized (mPersonalInfoList) {
            try {
                mPersonalInfoList.wait();
            } catch (InterrupedException ex) {
                ex.printStackTrace();
            }
    }

    return mPersonalInfoList;
}

0 个答案:

没有答案