繁体   English   中英

JavaScript 正则表达式,用于基于一组字符的全词匹配

[英]JavaScript regex for whole word match base on a set of characters

  div = $('#m');

  var str = 'The cat will run after to mouse';
  strSearch = ['a'];
    
    $.each(strSearch, function(i, word) {
            reg = new RegExp('\\b(' + word + ')\\b', 'gi');
            newWords = str.replace(reg, function(results) {
                return '<mark>' + results + '</mark>';
            });
    
    div.html(newWords);

当我运行这段代码时,它只突出显示“cat”和“after”中的“a”,我希望它突出显示整个单词。

您可以使用\w*a\w*来匹配整个单词:

  • \w匹配任何单词字符
  • *为零或更多

演示

 var div = $('#m'), str = 'The cat will run after the mouse', strSearch = ['a'], newWords = null; $.each(strSearch, function(i, word) { var reg = new RegExp('\\w*' + word + '\\w*', 'gi'); newWords = str.replace(reg, function(results) { return '<mark>' + results + '</mark>'; }); }); div.html(newWords);
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><div id="m"></div><style>#m { font-size: 28px; font-family: Arial, Helvetica, sans-serif; } mark { display: inline-block; background: yellow; font-weight: bold; }</style>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM