由于项目需要添加@功能,在评论以及发布短篇内容中@提及用户,于是参考了一些产品的@实现。记录如下:
- 优快云的@的实现:
优快云在客户端版本的叫做Blink的功能中引入了@功能,当你输入内容以及@用户,展示内容是 @深圳热心市民 你好!
实际存储的内容是:
"[at]{\"u\":\"u013107634\",\"n\":\"深圳热心市民\"}[/at]你好!"
以自定义标签[at] [/at] 开始和结束,并在中间拼接了json 字符串 其中 u 应该是 用户id , n 表示用户名。
这样的就需要客户端使用正则表达式去解析字符串 ,使用户名高亮以及可点击。
2. 知乎的@的实现:
展示的内容是 @深圳热心市民 你好!
实际存储的内容是:
"<p><a class=\"member_mention\" href=\"/people/2b891f7d75010801ea25d4e199343b24\" data-hash=\"2b891f7d75010801ea25d4e199343b24\">@深圳热心市民</a> 你好! </p>",