Поиск и замена в идентификаторах электронной почты на ссылку mailto в thymleaf

#thymeleaf

#thymeleaf

Вопрос:

Я хотел бы знать идентификаторы электронной почты в шаблоне thymleaf для ссылки mailto, например: hello@gmail.com для <a href="mailto:hello@gmail.com"></a>

Для поиска идентификаторов электронной почты следует использовать регулярное выражение.

Я пробовал использовать встроенный javascript thymleaf, но, к сожалению, не работает в Outlook.

 <script>
/*<![CDATA[*/
    function formatEmails(){
        var content=document.getElementById('content').innerHTML;       
        var regex = /S @S .S /g
        var matches = [];
        var match = regex.exec(content);
        var formatedContent=content;
        while (match != null) {
            if(matches.indexOf(match[0]) === -1)matches.push(match[0]); 
            match = regex.exec(content);
        }
        matches.forEach(function(email,index){
            formatedContent=formatedContent.split(email).join('<a href="mailto:' email '">' email '</a>')
        });
        document.getElementById('content').innerHTML=formatedContent;
   }
/*]]>*/
</script>
  

Если нет прямого способа сделать это, как это сделать?
Заранее спасибо.

Комментарии:

1. Немного неясно, что именно вы спрашиваете. Вы хотите заменить me@email.com на <a href="mailto:me@email.com">me@email.com</a> , я думаю? Почему бы вам не сделать это в самом шаблоне Thymeleaf?

2. @WimDeblauwe Да, точно. Как это сделать в thymleaf?. На самом деле это был мой вопрос.

3. content Является ли ввод HTML, в котором пользователь может вводить? Или это <div> , который отображается сервером? Если это просто отображение содержимого, вы можете использовать замену строки в вашем контроллере на Java.

4. @WimDeblauwe Есть ли какой-либо способ сделать это в самом шаблоне, что-то вроде поиска и замены с использованием регулярного выражения.

5. Есть #strings.replace в Thymeleaf (См. thymeleaf.org/doc/tutorials/3.0 / … ), но это не работает с регулярным выражением. Смотрите github.com/thymeleaf/thymeleaf/issues/730 для соответствующей проблемы.