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

时间:2012-06-07 04:35:51

标签: javascript regex replace

首先,我是一个javascript noob并且几乎不知道正则表达式。我试图破解一些本质上会改变这种情况的东西:

<span class="fspoiler">spoils</span>

对此:

<spoiler>spoils</spoiler>

从某些研究来看,似乎使用正则表达式和replace()函数是可行的方法,但我不知道从哪里开始。

4 个答案:

答案 0 :(得分:4)

var str = '<span class="fspoiler">spoils</span>';
str.replace(/<span class="f(.+)">(.+)<\/span>/, '<$1>$2</$1>');

答案 1 :(得分:0)

在同一行多次遇到破坏者时遇到了一些问题。由于我是正则表达式的菜鸟,我不知道从哪里开始修复它。我最后写出了一个可以做我需要的时间块。

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>');
}

答案 2 :(得分:-1)

使用jquery replceWith函数

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

答案 3 :(得分:-1)

var className=document.getElementById("abc");
var tagName=className.replace("f","");
var content=document.getElementById("abc").innerHTML;
var newTag = "<"+tagName+">"+content+"<"+tagName"/>";

此处,假设<span>被赋予id="abc"