0

我正在尝试创建模式匹配以在我的网站的文章中查找单词内容。当单词之间出现特殊字符或数字时,我无法进行模式匹配,我将添加 jsfiddle 链接。是否有可能找到出现的次数并添加一个按钮,单击该按钮将一个一个地转到每个出现...这是我的 pgrm 目前正在工作的方式http://jsfiddle.net/ehzPQ/12/

4

1 回答 1

1

我认为问题与你为你的单词选择的边界有关,我相信对于 \b 你没有考虑到单词之前有一个点的情况(比如“.cancer9”。但我真的不是正则表达式专家......所以,我做了一点工作并得到了这个解决方案,但我不确定它是否适合你:

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));
});

在这里你有一个工作演示:http: //jsfiddle.net/ehzPQ/20/

请让我知道这对你有没有用。

于 2012-06-14T03:05:57.220 回答