如何在正斜杠前添加字符串?

我试图在正斜杠之前添加一个字符串,这是一个场景:


当我有一个字符串时: str = "//html:div[@id='ins_storybody']/p[2]/span[1]/h2[3]/p[1]/p[4]"


我想要预期的输出: //html:div[@id='ins_storybody']/html:p[2]/html:span[1]/html:h2[3]/html:p[1]/html:p[4]


在这里你清楚地看到,我html:在正斜杠之前添加。


笔记


如果没有矩形括号,我不想添加html:. 这是另一个例子:


str = "//html:div[@id='ins_storybody']/p/span[1]/h2/p[1]/p"


预期输出:


str = "//html:div[@id='ins_storybody']/p/html:span[1]/h2/html:p[1]/p"


如您所见,html:如果没有[1] or [].


我尝试使用这个逻辑:


str = "//html:div[@id='ins_storybody']/p[2]/span[1]/h2[3]/p[1]/p[4]"

var htmlDOM = ['p', 'span', 'h1', 'h2', 'h3', 'h4']


for(var i=0; i<htmlDOM.length; i++) {


    q = str.includes('[');


    if (q) {

        strSlice = str.indexOf(htmlDOM[i]);

        newstr = str.slice(0,strSlice) + 'html:' + str.slice(strSlice);

    } else {

        newstr = str;

    }


    console.log(newstr)

}

但看起来,这是一次又一次的迭代循环,似乎工作不完美。


帮助将不胜感激!


繁花如伊
浏览 173回答 1
1回答

海绵宝宝撒

你可以试试这个正则表达式模式,它检查/哪个后面没有html:但必须跟着any word character followed by [\/(?!html:)(?=\w*\[)let stringAdder = (str) => str.replace(/\/(?!html:)(?=\w*\[)/gi,"/html:")console.log(stringAdder("//html:div[@id='ins_storybody']/p[2]/span[1]/h2[3]/p[1]/p[4]"))console.log(stringAdder("//html:div[@id='ins_storybody']/p/span[1]/h2/p[1]/p"))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript