Javascript如何使用要替换的部分文本替换字符串的一部分

Javascript如何使用要替换的部分文本替换字符串的一部分,javascript,regex,replace,Javascript,Regex,Replace,首先,我是一个javascript高手,对正则表达式几乎一无所知。我正试图拼凑一些东西,从根本上改变这一点: <span class="fspoiler">spoils</span> 破坏 为此: <spoiler>spoils</spoiler> 破坏 从一些研究来看,使用Regex和replace()函数似乎是一个不错的选择,但我不知道从哪里开始; var str = '<span class="fspoiler">spoi

首先,我是一个javascript高手,对正则表达式几乎一无所知。我正试图拼凑一些东西,从根本上改变这一点:

<span class="fspoiler">spoils</span>
破坏
为此:

<spoiler>spoils</spoiler>
破坏
从一些研究来看,使用Regex和
replace()
函数似乎是一个不错的选择,但我不知道从哪里开始;
var str = '<span class="fspoiler">spoils</span>';
str.replace(/<span class="f(.+)">(.+)<\/span>/, '<$1>$2</$1>');
str.replace(/(.+)/,“$2”); 使用jquery函数

$('span.fspoiler')。替换为('cartes');
var className=document.getElementById(“abc”);
var标记名=className.replace(“f”和“”);
var content=document.getElementById(“abc”).innerHTML;
var newTag=“”+内容+”;

这里,假设
给出了一个
id=“abc”

在同一条线上多次遇到扰流板时遇到一些问题。由于我是regex的一个noob,我不知道从哪里开始修复它。最后我只写了一个while块,可以满足我的需要

var spoilerStart = '<span class="fspoiler">';
var spoilerEnd = '</span>';
while (body.indexOf(spoilerStart) != -1)
{
    var startIndex = body.indexOf(spoilerStart);
    var endIndex = body.indexOf(spoilerEnd, startIndex) + spoilerEnd.length;
    var fullSpoiler = body.substring(startIndex, endIndex);

    var textStartIndex = startIndex + spoilerStart.length;
    var textEndIndex = endIndex - spoilerEnd.length;
    var text = body.substring(textStartIndex, textEndIndex);

    body = body.replace(fullSpoiler, '<spoiler>' + text + '</spoiler>');
}
var-spatlerstart='';
var扰流板趋势=“”;
while(body.indexOf(扰流板启动)!=-1)
{
var startIndex=body.indexOf(扰流板启动);
var endIndex=body.indexOf(扰流板趋势,startIndex)+扰流板趋势.length;
var fullSpoiler=主体子字符串(起始索引、结束索引);
var textStartIndex=startIndex+扰流板开始.length;
var textEndIndex=endIndex-扰流板趋势.length;
var text=body.substring(textStartIndex,textEndIndex);
车身=车身。更换(全扰流板,“+文字+”);
}

标记名是类名减去“f”,对吗?在正则表达式的末尾添加一个
g
将使该操作在字符串中的所有实例中都有效,对吗?非常好。这正是我想要的。谢谢
var className=document.getElementById("abc");
var tagName=className.replace("f","");
var content=document.getElementById("abc").innerHTML;
var newTag = "<"+tagName+">"+content+"<"+tagName"/>";
var spoilerStart = '<span class="fspoiler">';
var spoilerEnd = '</span>';
while (body.indexOf(spoilerStart) != -1)
{
    var startIndex = body.indexOf(spoilerStart);
    var endIndex = body.indexOf(spoilerEnd, startIndex) + spoilerEnd.length;
    var fullSpoiler = body.substring(startIndex, endIndex);

    var textStartIndex = startIndex + spoilerStart.length;
    var textEndIndex = endIndex - spoilerEnd.length;
    var text = body.substring(textStartIndex, textEndIndex);

    body = body.replace(fullSpoiler, '<spoiler>' + text + '</spoiler>');
}