jQuery正则表达式按子串查找字符串

问题描述:

在我的网站上,我有多个字符串总是出现相同的子字符串(比如说“boo-foo”,“loo-foo”和“great-foo”)。jQuery正则表达式按子串查找字符串

我想用firstpart- foo取代所有这些。因此,所有这些人的第一部分应该是大胆的。

任何人都可以提供一个在jQuery中的正则表达式吗?

我相信它应该是这个样子,但与正则表达式:

$(this).html($(this).html.replace("boo-foo","<strong>boo-</strong>foo")); 

$(this).html($(this).html().replace(/^(.*)\-foo$/ig,'<strong>$1</strong>-foo'); 

请检查该脚本,

var htmlText = $('body').html(); 
var replaced = htmlText.replace(/([\w\d]+)\-foo/ig, "<strong>$1</strong>-foo"); 
$('body').html(replaced); 

小提琴:https://jsfiddle.net/o6doa4o6/

更新提琴制作“ - ”也是大胆的。

https://jsfiddle.net/o6doa4o6/1/

可以使用回参考寻找捕获的组,然后使用string.replace方法来代替使用正则表达式的字符串。反向引用允许引用先前由捕获组匹配的文本。在JavaScript中,您可以使用$1来引用第一个捕获的组。对于每个捕获的组类似地$2, $3..

以下实现显示了此行为,不包括Jquery部分。

var stringValue = `boo-foo 
 
loo-foo 
 
great-foo`; 
 

 
var regexToSearch = /([a-zA-Z]*)-foo/g; 
 

 
var result = stringValue.replace(regexToSearch, '<strong>$1</strong>-foo'); 
 
console.log(result);