2009-10-30 4 views
0

Я знаю нулевой JavaScript, и имеют одну простую задачу: [.? [+]]Простой Javascript для поиска и замены

  1. Найти весь текст в текущей HTML формы
  2. Извлеките содержимое скобок
  3. заменить все символы пробела с подчеркиванием
  4. вместо всего выражения, выход <img src="foo.com/$1.jpg"/>, где $ 1 является согласованным текстом (после того, как пространства были заменены).
  5. (Это должно быть сделано для всего текста внутри [[]] в HTML)

Могу ли я беспокоить вас с фрагментом, который делает это?

+0

Вы уже пробовали * что-нибудь еще? Дайте нам некоторые указания на усилие здесь. –

+2

Ну, я _tried_ отправил его к SO, но это пока не помогло. – ripper234

ответ

2

Предполагая, что у вас уже есть источник HTML в переменной с именем html, вы можете сделать что-то вроде этого:

var converted = html.replace(/\[\[(.+?)\]\]/g, function (s, token) { 
    return '<img src="foo.com/' 
     + token.split(" ").join("_") 
     + '.jpg"/>'; 
}); 

Чтобы получить или установить весь HTML внутри <body>, вы можете использовать document.body.innerHTML. Однако я бы рекомендовал специально настроить элементы определенного идентификатора или класса, если этот шаблон строки действительно не отображается в случайных местах на странице. Я также рекомендовал бы использовать jQuery для поиска этих элементов и изменения их содержания:

$(".replacable").each(function() { 
    this.html(imagize(this.html())); 
}); 

function imagize(html) { 
    return html.replace(/\[\[(.+?)\]\]/g, ...); 
} 
+0

+1 для напоминания мне запускать его только по определенным элементам, а не по всему html – ripper234

Смежные вопросы