Javascript регулярное выражение .replace () не работает - PullRequest
3 голосов
/ 24 января 2012

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

<a style="text-decoration:none;" href="http://i.imgur.com/TeC4R.png"><img src="http://i.imgur.com/TeC4R.png" alt="Posted Image">[br]<small></small></a><small><a href="http://i.imgur.com/TeC4R.png" class="view_full">View Full Image</a></small>

. Моя цель - отфильтровать эту строку, чтобы вместо нее отображалось [url=http://i.imgur.com/TeC4R.png]Image[/url] при нажатии кнопки.Вот что я пытался:

$("#containerbtn").click(function(){
$("#mqcontainer").each(function(){
  $(this).html(
    $(this).html().replace(
      /<a style="text-decoration:none;" href="(.*?)"><img src=".*?" alt="Posted Image">\[br\]<small><\/small><\/a><small><a href=".*?" class="view_full">View Full Image<\/a><\/small>/g,
      '[url=$1]Image[/url]'
    )
  );
});
});

Это не работает, что бы я ни пытался.Кто-нибудь может предложить мне некоторое представление о проблеме?

Ответы [ 3 ]

3 голосов
/ 24 января 2012

[br] следует экранировать в регулярном выражении: \[br\]

1 голос
/ 24 января 2012

Неправильно:

$("#mqcontainer").each(function(){
  $(this).html(
    ...
  )};
)};

Код выше не может быть правильным.Поскольку существует только один div с идентификатором mqcontainer.

Попробуйте:

$("#mqcontainer").html(
    $("#mqcontainer").html().replace(/<a style="text-decoration:none;" href="(.*?)"><img src=".*?" alt="Posted Image">\[br\]<small><\/small><\/a><small><a href=".*?" class="view_full">View Full Image<\/a><\/small>/g, '[url=$1]Image[/url]')
);
0 голосов
/ 24 января 2012
<a style="text-decoration:none;" href="(.*?)"><img src=".*?" alt="Posted Image">\[br\]<small><\/small><\/a><small><a href=".*?" class="view_full">View Full Image<\/a><\/small>

Выше должно работать.

Я удалил постороннее], которое было после твоего изображения и перед побегом [br].

Редактировать : И примечание, добавляющее, что, глядя на историю изменений после просмотра комментариев Powtac выше, это фактически ошибка, которую вы внесли при редактировании в его предложении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...