从django模板中的变量中提取电子邮件

时间:2015-07-29 09:25:04

标签: django django-templates

我想在下面的代码段中从{{e}}(包含带有电子邮件的字符串)中提取电子邮件地址

{% for e in error %}
          {{e}}
    {% endfor %}

2 个答案:

答案 0 :(得分:2)

您可以使用javascript提取电子邮件:

var error = 'sdabhikagathara@rediffmail.com, "assdsdf" <dsfassdfhsdfarkal@gmail.com>, "rodnsdfald ferdfnson" <rfernsdfson@gmal.com>, "Affdmdol Gondfgale" <gyfanamosl@gmail.com>, "truform techno" <pidfpinfg@truformdftechnoproducts.com>, "NiTsdfeSh ThIdfsKaRe" <nthfsskare@ysahoo.in>, "akasdfsh kasdfstla" <akashkatsdfsa@yahsdfsfoo.in>, "Bisdsdfamal Prakaasdsh" <bimsdaalprakash@live.com>,; "milisdfsfnd ansdfasdfnsftwar" <dfdmilifsd.ensfdfcogndfdfatia@gmail.com>';    

function extractEmails (text)
{
    return text.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi);
}

$("#emails").text(extractEmails(text).join('\n'));

答案 1 :(得分:1)

您可以创建自己的模板过滤器get_email,它将从传递给它的字符串中提供电子邮件的值。

from django import template

register = template.Library()

@register.filter
def get_email(value):
    email = value.strip().split()[1] # get the 2nd word from the sentence
    return email

然后在您的模板中,您可以通过以下内容访问email

{{e|get_email}}

e模板过滤器应用于字符串get_email后获得的'Email test@gmail.com is already assigned to this campaign'的值为test@gmail.com,假设email始终位于第{2}位句。