Javascript正则表达式替换空格和html

Javascript正则表达式替换空格和html,javascript,regex,Javascript,Regex,我试图替换字符串中可能有html标记或空格的单词。因此,如果我想查找/替换Javascript: var text='javajavascript和JavascriptJavascript'; var find=“Javascript”; var regex=new RegExp(`(?:>|\s)(${find})(?:在这里,您可以使用search()方法手动替换字符串 var text='javajavascript和JavascriptJavascript'; var find=“J

我试图替换字符串中可能有html标记或空格的单词。因此,如果我想查找/替换Javascript:

var text='javajavascript和
  • Javascript
  • Javascript'; var find=“Javascript”;
    var regex=new RegExp(`(?:>|\s)(${find})(?:在这里,您可以使用
    search()
    方法手动替换字符串

    var text='javajavascript和
  • Javascript
  • Javascript'; var find=“Javascript”; var toUpdate=“javascriptUpdated”; var regex=/(
  • *|
  • )/g; var index=text.search(regex);//搜索regex匹配的索引。 text=text.substr(0,索引+4)+toUpdate+text.substr(索引+13);//手动替换字符串。
    console.log(text,“result”);//您的结果。
  • 首先,请参阅上面的第一条注释……解析HTML是个坏消息。也就是说,如果您知道存在约束,那么您应该可以(他疯狂地说)

    有两种方法可以做到这一点,但对代码最微小的更改可能只是需要使用正则表达式,然后在替换中使用捕获组(及其索引)

    var text='javajavascript和
  • Javascript
  • Javascript'; var find=“Javascript”; //请注意尖括号和空格的捕捉组 var regex=new RegExp(`(>\s*)(${find})(\s*和<字符(和空格) var result=text.replace(regex,$1JavascriptUpdated$3');
    console.log(result,“result”);
    首先,请参阅顶部的注释。其次,
    \s
    =>
    \\s
    。第三,在开始时使用捕获组(
    (^[s>)
    ),在结束时使用前瞻(
    (?)[^\\s@WiktorStribiżew看起来像
    ${find}
    (以及
    \s
    )都在模板字符串中,所以不需要转义。@jakerella不,它们不在
    字符串中。raw`…`
    @WiktorStribiżew抱歉,但它们都很好。请参阅我发布的答案,效果很好。它是一个模板字符串,不应该转义。运行代码输出
    错误:{“消息”:“未捕获的语法错误:意外标识符”,“文件名”:https://stacksnippets.net/js“,”lineno“:20,“colno“:35}
    等等..让我编辑一下..很抱歉..我们只需添加“//您的结果”…它将修复编辑的代码。您可以签出。@WiktorStribiżew”