我想知道是否有人可以帮助我。我需要在 HTML 代码中用另一个字符串替换一个字符串。假设有一个标题,
我是 foo 与 x-foo 酒吧。
如果单词"foo"在它之前有任何字符,而不是空格,则应替换它。所以第一个"foo"不应该被替换,但第二个"-foo"应该被替换。此外,它应该取代foo和Foo。我的代码是这样的:
$("h2").html( $("h2").html().replace(/Foo|foo/g, "<span class='replacedFoo'>F</span>oo") );
此代码替换了所有 foo 和 Foo。还有"福"。谁能帮忙?
- 替换"某物"
- 不要替换"Foo"
非常感谢大家!
更改所有foo和Foo,在它之前或一行的开头加上一个空格,带有Bar的行
$("h2").html( $("h2").html().replace(/\Sfoo/gi,"Bar") )
\S 匹配所有非空格字符
要使其更复杂:我们拥有什么:
<h2>This is Something-Foo and Dr. Foo</h2>
我们想要什么:
<h2>This is <strong>Something-</strong><span class="replacedFoo">F</span>oo and Dr. Foo</h2>
- 将"Foo"前面的整个单词替换为强标签。
- 如果"Foo"前面没有空格,而是任何其他字符,请替换"Foo"的F-匹配"foo"和"Foo"。
- 不要替换"Foo"。
还有正则表达式大师吗?:)
$("h2").html( $("h2").html().replace(/(^|S)([Ff])oo/g, "$1<span class='replacedFoo'>$2</span>oo") );
(S)
- 匹配任何非空格字符并捕获它,以便我们可以在替换后将其放回原处。
([Ff])
- 匹配"F"和捕获的两个情况,以便我们可以用相同的大小写替换。
"$1<span...
- 插入我们在匹配开始时找到的非空格字符。
...replacedFoo'>$2</span>...
- 插入我们在匹配中找到的相同大小写的"F"。
function replaceFoo(str) {
return str.replace(/(S)([Ff])oo/g, "$1<span class='replacedFoo'>$2</span>oo");
}
console.log(replaceFoo('I am fooFoo'));
console.log(replaceFoo('Foo foo foo foofoo'));