首先,我是一个 JavaScript 菜鸟,对正则表达式几乎一无所知。我正在尝试拼凑一些可以从根本上改变这一点的东西:
<span class="fspoiler">spoils</span>
对此:
<spoiler>spoils</spoiler>
从一些研究来看,似乎使用正则表达式和replace()
函数是要走的路,但我不知道从哪里开始。
首先,我是一个 JavaScript 菜鸟,对正则表达式几乎一无所知。我正在尝试拼凑一些可以从根本上改变这一点的东西:
<span class="fspoiler">spoils</span>
对此:
<spoiler>spoils</spoiler>
从一些研究来看,似乎使用正则表达式和replace()
函数是要走的路,但我不知道从哪里开始。
var str = '<span class="fspoiler">spoils</span>';
str.replace(/<span class="f(.+)">(.+)<\/span>/, '<$1>$2</$1>');
在同一条线路上多次遇到剧透时遇到了一些问题。由于我是正则表达式的菜鸟,我不确定从哪里开始修复它。我最后只是写了一个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>');
}
通过使用 jquery replceWith函数
$('span.fspoiler').replaceWith('<spoiler>spoils</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"