当特殊字符和数字介于两者之间时,使用javascript的模式匹配不起作用

当特殊字符和数字介于两者之间时,使用javascript的模式匹配不起作用,javascript,jquery,Javascript,Jquery,我正在尝试创建一个模式匹配,以便在我的网站的文章中查找单词内容。。我无法进行模式匹配,当单词之间出现特殊字符或数字时,我将添加JSFIDLE链接。。还有可能找到出现的次数并添加一个按钮,单击“逐个转到每个出现”…这就是我的pgrm当前编写的方式我认为问题与你为你的单词选择的边界有关,我相信\b你没有考虑单词前面有一个点的情况(比如“.cancer9”。但我不是regex方面的专家……所以,我做了一些工作,得到了这个解决方案,但我不确定它是否适用于您: Javascript: $(document

我正在尝试创建一个模式匹配,以便在我的网站的文章中查找单词内容。。我无法进行模式匹配,当单词之间出现特殊字符或数字时,我将添加JSFIDLE链接。。还有可能找到出现的次数并添加一个按钮,单击“逐个转到每个出现”…这就是我的pgrm当前编写的方式

我认为问题与你为你的单词选择的边界有关,我相信\b你没有考虑单词前面有一个点的情况(比如“.cancer9”。但我不是regex方面的专家……所以,我做了一些工作,得到了这个解决方案,但我不确定它是否适用于您:

Javascript:

$(document).ready(function () {
  var $test = $('#article');
  var entityText = $('#entity').html().replace(/\./g, "\\\.").replace(/\$/g, "\\\$").replace(/\?/g, "\\\?"); //etc...
  var entityRegularExpression =new RegExp("([^a-zA-Z0-9])(" + entityText + ")([^a-zA-Z0-9])", "gi");
  var highlight = '$1<span class="highlight">$2</span>$3';
  $test.html($test.html().replace(entityRegularExpression, highlight));
});
$(文档).ready(函数(){
var$test=$(“#文章”);
var entityText=$(“\\;entity').html()。替换(/\./g,“\\\.”)。替换(/\$/g,“\\\$”)。替换(/\?/g,“\\\?”);//等等。。。
var entityRegularExpression=newregexp(“([^a-zA-Z0-9])(“+entityText+”)([^a-zA-Z0-9]),“gi”);
var highlight='1$2$3';
$test.html($test.html().replace(entityRegularExpression,highlight));
});
这里有一个工作演示:


让我知道它是否适用于您。

您能给出一个不匹配文本的示例吗?当我尝试查找例如
参见2008
时,适当的部分会突出显示。部分用于
它是
。您的示例似乎有效(尽管我没有发现任何特殊字符…)。类似“test9?test”的文本您是说要处理吗“特殊字符”和数字作为单词之间的分词?(请定义“特殊”-我不认为问号很特别)。
在中有特殊意义。因此您需要对这些字符进行处理。谢谢,wrkd..bt不应该有更简单的方法来解决这个字符或符号问题..我没有自己添加所有可能的字符…我没有测试它,但是
stringToReplace.replace(/[^\w\s]/gi,\\\$&')
可能有效。