Как я могу использовать регулярное выражение для поиска контента на странице с помощью jQuery?

0

Поэтому я пытался сделать $ (document).match(/regexp/); и я продолжаю получать "undefined не является функцией"

Когда я делаю $ (document) html(). Match (/regexp/); TypeError: Не удается прочитать свойство "match" undefined

Регулярное выражение, которое я использую, это /^[~{.*?}~]$/. Все, что я хочу сделать, это поиск документа html для [~ {любого типа ввода} ~], чтобы затем я мог заменить его на правый код с помощью jQuery. По сути, я буду создавать свой собственный шаблонный движок. Нынешние, либо не делают то, что мне нужно, либо слишком раздуты.

<body>

    [~{ header }~]


    <p>This is the home page</p>


    [~{ footer }~]

</body>

Поэтому, я думаю, я был неясно, что мне нужно сделать, это найти текст внутри "[~ {" and "} ~]". Затем, поместив его в переменную и определив, что с ним делать, я снова найду все выражение, но на этот раз я заменю его другим контентом.

Так

[~{ header }~]

Я бы нашел это с совпадением или чем-то, извлеките текст заголовка в переменную. Оттуда у меня будет функция. Функция вернет что-то сделать, как получить получение html-страницы и загрузить ее. Но тогда ему придется снова найти выражение, чтобы заменить его.

  • 0
    Итак, в основном вы хотите использовать регулярные выражения для создания шаблонизатора? Звучит великолепно.
  • 0
    да, я решил, что могу просто найти текстовый узел, а затем заменить его содержимым или загрузить страницу.
Показать ещё 2 комментария
Теги:
match
replace
template-engine

1 ответ

1
Лучший ответ

$(document) возвращает объект jQuery, а не строку. Вам нужно вызвать html() чтобы получить содержимое HTML документа. Ты можешь сделать:

$('body').html(function(contents) {
    return contents.replace(/regexp/, 'replacement');
});

Если вы просто хотите увидеть матч:

var match = $('body').html().match(/regexp/);
console.log(match);
  • 0
    Как бы я смог увидеть, что он вернулся? Мне нужно видеть содержимое найденного регулярного выражения. Спасибо!
  • 0
    Смотрите обновленный ответ
Показать ещё 13 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню