为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

繁花如伊 2021-10-29 16:08:05
我试图在正斜杠之前添加一个字符串,这是一个场景:当我有一个字符串时: 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)}但看起来,这是一次又一次的迭代循环,似乎工作不完美。帮助将不胜感激!
查看完整描述

1 回答

?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

你可以试试这个正则表达式模式,它检查/哪个后面没有html:但必须跟着any word character followed by [

\/(?!html:)(?=\w*\[)

//img1.sycdn.imooc.com//617bac000001c3a004440158.jpg

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"))


查看完整回答
反对 回复 2021-10-29
  • 1 回答
  • 0 关注
  • 171 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信