我正在制作一个视频游戏应用程序,让用户@提到一个存储在数据库中的电子游戏。它的工作方式类似于你可以在Twitter上“提到用户”,或者在Facebook上“提及任何事情”的方式。
当用户在进行评论时键入“@”时,JavaScript会触发一个下拉框以显示。用户从下拉框中选择一个游戏,当他选择它时,它会进入文本区域。在内部,字符串是使用@id:Game Title格式存储的,这是我编写的格式。所以,如果我想@提到“超级马里奥兄弟”在我所做的评论中,存储在内部(并发送到数据库)的字符串是:
@[6816:Super Mario Bros.] is a great game!
这种格式允许应用程序知道游戏ID是6816,并且游戏是“超级马里奥兄弟”。
当评论稍后显示时,它需要以HTML格式显示,以便用户可以单击游戏的链接,如果他/她愿意的话。如何使用PHP将此原始字符串转换为HTML格式,如:
<a href="/games/6816">Super Mario Bros.</a> is a great game!
我尝试过多种解决方案,但似乎没有一种可行。我不确定最好的解决方案是使用正则表达式,还是使用其他解决方案。请记住,用户可以@提到他/她想要的游戏数量!
发布于 2014-10-10 02:30:36
Javascript
var test = "@[6816:Super Mario Bros.] is a great game! @[6821:Super Mario Bros. 3] is fun too!";
test.replace(/@\[(\d+?):(.+?)\]/g, "<a href=\"/games/$1\">$2</a>");PHP
$test = '@[6816:Super Mario Bros.] is a great game! @[6821:Super Mario Bros. 3] is fun too!';
preg_replace('/@\[(\d+?):(.+?)\]/', '<a href="/games/$1">$2</a>', $test);编辑:更新以支持多个标记
https://stackoverflow.com/questions/26290907
复制相似问题