繁体   English   中英

如何在特定索引后替换javascript中的字符串

[英]how to replace a string in javascript after the specific index

嗨,我有一个包含html内容的字符串,我想使用javascript将标签<p class =“ MsoNormal”>替换为''空白,并且我想用<br>标签替换相应的结束标签</ p>该字符串。

如果我用

第一行:

str=str.replace(/<p class=\"MsoNormal\">/g,'');    

第二行: str=str.replace(/<\\/p>/g,'<br>');

所有的</ p>结束标记都将被删除。但是我要替换具有</ p>结束标记的开始标记为“ <p class =“ MsoNormal”>“。

第一行的脚本对我来说还可以,我应该用什么替换第二行中的相应结束标记。

检查一下:输出是我从您的问题中得到的结果是用空字符串替换

var replaceTag = function(str, replaceTagString, endTagString) {
    var str = '';
    while(str.indexOf(replaceTagString) != -1) {
        //search for </p> after my matched String
        var indexOfClosingTag = str.indexOf(endTagString, str.indexOf(replaceTagString))
        //Replace </p> using Substring
        str = str.substr(0,indexOfClosingTag) + "<br>" + str.substr(indexOfClosingTag + endTagString.length,k.length)
        //Replace your main String
        str = str.replace(replaceTagString,'')
    }
    return str
}

var k = "<p class='MsoNormal'>something</p><p>other p tag</p><h1>I am h1</h1><p>Hello p</p><p class='MsoNormal'>Replace My Tag too</p>"

replaceTag(k, "<p class='MsoNormal'>", "</p>")

输出:

"something<p>other p tag</p><h1>I am h1</h1><p>Hello p</p>Replace My Tag too"

概念:

string.indexOf(searchvalue,start)

在我当前匹配的字符串位置之后开始搜索标签结尾(P)

像这样自己定义一个函数->

String.prototype.replaceAt=function(index, character) {
        return this.substr(0, index) + character + this.substr(index+character.length);
    }

并像这样使用它:

str = str.replaceAt(3, "</p>");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM