jquery正则表达式替换单词空间

时间:2017-01-31 19:27:38

标签: javascript jquery regex replace space

我想知道是否有人可以帮助我。 我需要在HTML代码中用另一个字符串替换字符串。 让我们说有一个标题

我和x-foo吧foo。

。 如果“foo”之前的任何字符都在空格之外,则应替换“foo”。所以第一个“foo”不应该被替换,但第二个“-foo”应该被替换。 它也应该取代foo和Foo。

我的代码是这样的:

$("h2").html( $("h2").html().replace(/Foo|foo/g, "<span class='replacedFoo'>F</span>oo") );

此代码替换所有foo和Foo。但也“foo”。有人可以帮忙吗?

  • 替换“somethingFoo”
  • 不要替换“Foo”

非常感谢你们!

3 个答案:

答案 0 :(得分:0)

改变所有的foo&amp; Foo前面有一个空格或者在Bar的行开头

$(“h2”)。html($(“h2”)。html()。replace(/ \ Sfoo / gi,“Bar”))

\ S匹配所有非空白字符

答案 1 :(得分:0)

$("h2").html( $("h2").html().replace(/(^|\S)([Ff])oo/g, "$1<span class='replacedFoo'>$2</span>oo") );

(\S) - 匹配任何非空格字符并捕获它,以便我们可以在替换后将其放回。

([Ff]) - 匹配&#39; F&#39;并捕获所以我们可以用相同的情况替换。

"$1<span... - 插入我们在比赛开始时找到的非空格字符。

...replacedFoo'>$2</span>... - 插入相同的&#39; F&#39;我们在比赛中找到了。

&#13;
&#13;
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'));
&#13;
&#13;
&#13;

答案 2 :(得分:0)

使其更复杂: 我们有什么:

<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>
  • 使用strong-tag替换“Foo”之前的整个单词。
  • 如果在“Foo”之前没有空格但任何其他字符,则替换“Foo”的F - 匹配“foo”和“Foo”。
  • 请勿替换“Foo”。

还有正则表达式大师吗? :)