在PHP中的用户描述中用表情符号替换文字

时间:2018-08-22 04:25:42

标签: javascript php

我用JavaScript编写了这个脚本,用表情符号替换了文本,并且当我在textarea':)''<3'等中书写时工作正常。

但是,当我写一篇帖子并保存其描述为“ :)”时,我希望表情符号代替文本“ :)”出现

显示的行是已保存帖子的描述:

<p class="ptext msg_wrap" id="message"><?php echo $row['post_description']; ?>

JavaScript代码:

<script type="text/javascript">
    var map = {
   "<3": "\u2764\uFE0F",
   "</3": "\uD83D\uDC94",
   ":D": "\uD83D\uDE00",
   ":)": "\uD83D\uDE03",
   ";)": "\uD83D\uDE09",
   ":(": "\uD83D\uDE12",
   ":p": "\uD83D\uDE1B",
   ";p": "\uD83D\uDE1C",
   ":'(": "\uD83D\uDE22"
 };
 function escapeSpecialChars(regex) {
   return regex.replace(/([()[{*+.$^\\|?])/g, '\\$1');
 }
  document.getElementById('message').oninput = function() {
   for (var i in map) {
     var regex = new RegExp(escapeSpecialChars(i), 'gim');
     this.value = this.value = this.value.replace(regex, map[i]);
   }
 };

</script>

1 个答案:

答案 0 :(得分:0)

您已经为oninput事件编写了JS函数。这意味着,它将寻找输入来触发更改,但是在从db动态加载文本时,您正在使用<p>在段落中分配文本。要么将<p>更改为<input>,要么将事件更改为onLoad