首先,我是javascript noob,幾乎不知道任何正則表達式。我試圖破解在一起的東西,將從根本上改變這一點:Javascript如何用一些要替換的文本替換字符串的一部分
<span class="fspoiler">spoils</span>
要這樣:
<spoiler>spoils</spoiler>
從一些研究,它似乎是使用正則表達式和replace()
功能是要走的路,但我不知從哪裏開始。
首先,我是javascript noob,幾乎不知道任何正則表達式。我試圖破解在一起的東西,將從根本上改變這一點: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>');
在正則表達式的末尾添加一個'g'可以使它在一個字符串中的所有實例上工作,對嗎? – InsanityOnABun
@InsanityOnABun是的,沒錯。 – xdazz
優秀。這正是我所期待的。謝謝! – InsanityOnABun
通過使用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"
也陷入了一些問題時,擾流板都在相同的遭遇多次線。由於我是正則表達式的noob,我不知道從哪裏開始修復它。我最終只寫出了一段時間會做我所需要的。
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>');
}
標記名是類名減去'f',對嗎? –
@karank正確。 – InsanityOnABun