JQuery и RegExp - PullRequest
       29

JQuery и RegExp

0 голосов
/ 12 мая 2009

Я строю функцию, которая заменяет ключевое слово в HTML на ссылку. Проблема в том, что когда ключевое слово находится в ссылке, оно будет заменено.

$(document).ready( function () {
    $("#content").highlight( "example", "<a href=\"http://www.example.com\">$1</a>" );});

jQuery.fn.highlight = function (text, o) {
return this.each( function(){
    var replace = o;
    $(this).html( $(this).html().replace( new RegExp('('+text+'(?![\\w\\s?&.\\/;#~%"=-]*>))', "ig"), replace) );
});}

и мой HTML

<div id="content">
    <h2>the word "example" replaced by the link</h2>
    <p>this is an example</p>

    <p>this is an example number 2</p>
    <p><a href="http://www.wrong.com">this is an example</a></p>
</div>

1 Ответ

1 голос
/ 12 мая 2009

Я бы проверил каждый элемент в цикле, чтобы увидеть, является ли он тегом привязки перед выполнением замены.

if( !$(this).is('a') ) {
  // Replace Code here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...