簡體   English   中英

正則表達式匹配確切的單詞並將匹配轉換為標簽

[英]Regex to match exact words and convert match into tags

我想匹配確切的單詞,但與正則表達式匹配的單詞就像

  • 住在直播中
  • 美國以美國為首

keywords = "US",live","xxxx"...

var pattern = new RegExp("(\\b"+this+"\\b)(?![^<]*?>)", ["gi"]);

使用\\s選項為匹配的字符串添加空格

我實際上匹配字符串然后轉換為標簽,方法是在每個匹配的單詞前加上# ,但上面的模式匹配上面提到的單詞

$(keywords).each(function() {
    var pattern = new RegExp("(\\b"+this+"\\b)(?![^<]*?>)", ["gi"]); //looks for match outside html tags
    //var pattern = new RegExp("(\\b"+this+"\\s)(?![^<]*?>)", ["gi"]); //looks for match outside html tags
    var rs = "<a class='keyword' href='#'><span class='tag-keyword'>$1</span></a>";
    el.html(el.html().replace(pattern, rs));
});

$(".tag-keyword").prepend("#");

您可以在前導的幫助下強制使用連字符,以檢查是否存在必需空格或字符串結尾:

(?=\s|$)

喜歡

\blive\b(?=\s|$)(?![^<]*?>)

這是一個演示

請記住,在JavaScript中,當您使用RegExp構造函數表示法時, 必須使用雙斜杠

使用構造函數時,需要使用普通的字符串轉義規則(前面包含字符串的特殊字符)。

 var pattern = new RegExp("(\\b"+this+"\\b)(?=\\s|$)(?![^<]*?>)", ["gi"]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM