Что я должен сделать, чтобы встроить что-либо, кроме тегов HTML, которые я делаю в виде кода HTML на экран ??
Я предполагаю, что вы хотите, чтобы каждый символ в message
, кроме тех, которые вы заменяете тегами HTML, отображался буквально на экране.
var messageHTML = message.replace(/&/g, "&")
.replace(/</g, "<").replace(/>/g, ">");
поместит HTML-эквивалент message
в messageHTML
*.
Как только messageHTML
содержит строку HTML, вы можете безопасно и правильно заменить все вхождения ":)"
, поскольку это просто простое преобразование HTML -> HTML.
messageHTML = messageHTML.replace(/:\)/g, "<img ...>");
Теперь вы можете использовать jQuery .html(messageHTML)
для внедрения message
с вашими тегами в DOM.
* - пробел будет отличаться, если вы не внедрите его в контекст с помощью CSS white-space: pre
или white-space: pre-wrap