Javascript正则表达式替换空格和html
我试图替换字符串中可能有html标记或空格的单词。因此,如果我想查找/替换Javascript: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
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”