我见过像Twitter
, Facebook
, Bitbucket
, Github
,Gmail
等网站。他们emojis
在键入一组字符后添加,或者在发布内容后添加它们。就像是:
:D-->?
我想有一个侦听器,用正则表达式编程,JavaScript
等待与该模式匹配的内容,然后用图像或 unicode(例如 Font Awesome)替换它。
我想知道实现这一目标会发生什么。有我可以使用的设计模式吗?我需要在我的 DB( MySQL
) 中进行任何特殊配置吗?
注意:除了使用框架(如果存在)之外,我还想知道它是如何实现的。
您不需要任何数据库配置,因为为了节省资源,渲染是在客户端的 PC 上完成的。我不知道javascript中的设计模式,但在其他语言中,您将创建一个包含所有表情符号的表(散列)的静态和公共类,以防您广泛使用它。
过程
当人员键入时,您会在文本中找到字符串并将其替换为图像标记,理想情况下,您应该使用 HTML 组件或不限制您只输入文本的其他东西,
input
最简单的方法是添加允许contenteditable
您编辑DOM
.这是一个带有jquery的小例子
这是一个示例,说明如何在没有任何框架类的情况下做你想做的事,只是 vanilla-script:
注意:我没有时间正确实现正则表达式来捕获微笑代码:),但总体思路是有效的:
代码:
我能想到的最基本的东西:
$(document).ready()
)之后,它会评估你需要用标签替换符号内容的<p>
so的内容,或者用标签或代表图像的一部分通过 CSS 如这里解释。为了让事情变得更简单,您可以让 CSS 类已经包含作为背景的您需要的主图像中的确切精灵。要识别s 和s,您可以使用 CSS 类,以便减少对应应用更改的文本的分析,并减少在生成的 HTML 中发生这种替换的地方。<div>
:)
:D
<img>
<span>
<p>
<div>