我正在尝试编写一个高亮插件,并希望保留HTML格式.使用javascript进行替换时,是否可以忽略字符串中<和>之间的所有字符?
以下面的例子为例:
var string = "Lorem ipsum dolor span sit amet, consectetuer <span class='dolor'>dolor</span> adipiscing elit.";
Run Code Online (Sandbox Code Playgroud)
我希望能够实现以下目标(将'dolor'替换为'FOO'):
var string = "Lorem ipsum FOO span sit amet, consectetuer <span class='dolor'>FOO</span> adipiscing elit.";
Run Code Online (Sandbox Code Playgroud)
或者甚至可能(将'span'替换为'BAR'):
var string = "Lorem ipsum dolor BAR sit amet, consectetuer <span class='dolor'>dolor</span> adipiscing elit.";
Run Code Online (Sandbox Code Playgroud)
我非常接近tambler在这里找到答案:你可以在用jQuery替换时忽略字符串中的HTML吗?但是,出于某种原因,我无法得到公认的工作答案.
我对正则表达式完全陌生,所以任何帮助都将不胜感激.
我有以下字符串示例:
"1. go [south], but look out for the trout pouting [lout]"
"2. go [south], but be wary of the pouting [lout]"
"3. go [south], but be wary of the sullen-looking [lout]"
Run Code Online (Sandbox Code Playgroud)
我想查询词进行到比赛如果它出现在每个字符串,但如果它的括号被忽略。所以我希望匹配:
我已经设法达到这个表达:
/[^\(\)\[\]]out\s(?![\]])/ig
Run Code Online (Sandbox Code Playgroud)
但是,它只匹配out和trout的第一个字符串。
我发现空格字符是此处不匹配pouting的影响因素,但去掉它也会匹配括号之间的所有内容。
什么是正确的正则表达式?