我的网站允许用户按关键字搜索数据库。我编写了服务器端搜索查询,以忽略特殊字符和标点符号。因此,您可以搜索story the quick
并找到以下记录:A story: The quick, brown, fox jumped...
接下来,我想使用JavaScript突出显示用户在页面上搜索的单词。像这样:
查询:一个故事
结果: 一个故事: 快速,棕色,狐狸跳了起来……
如何使用Javascript执行此操作?也许带有正则表达式这样的东西?
var query = "a story the";
var res = str.replace(query, "<strong>A story: the</strong>");
我花了数小时试图实现此服务器端(PHP),但是由于用户可能在查询中包含或不包含特殊字符这一事实使情况变得复杂。本质上,如果搜索词类似于Tes;t
或只是<span>
,我想将结果te;!%st
包裹在test
中。如何才能做到这一点?
编辑
出于我的目的,任何非字母字符都被视为“特殊字符”,应在查询中将其忽略,但在突出显示中包含。另外,我正在寻找确切的短语。
例如,如果用户搜索了a story the
,我也不想突出显示the
的每个实例。从理论上讲,搜索a story &&!@#!@# ___ the
将突出显示a story;__987the
。同时,不应突出显示单词the
的任何孤立实例。