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/
更新提琴制作“ - ”也是大胆的。
答
可以使用回参考寻找捕获的组,然后使用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);