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

Javascript How to replace part of a string using some of the text to be replaced

本文关键字:文本替换 字符串 一部分 替换 何使用 Javascript      更新时间:2023-09-26

首先,我是一个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>');

在同一行多次遇到剧透时遇到了一些问题。由于我是正则表达式的菜鸟,我不确定从哪里开始修复它。我最终只是写出一个可以做我需要的块。

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 className=document.getElementById("abc");
var tagName=className.replace("f","");
var content=document.getElementById("abc").innerHTML;
var newTag = "<"+tagName+">"+content+"<"+tagName"/>";

在这里,假设<span>被赋予了一个id="abc"

通过使用 jquery replceWith 函数

$('span.fspoiler').replaceWith('<spoiler>spoils</spoiler>');