如何在Twig中从字符串类型的邮箱地址提取域名?
嘿,刚好熟悉Twig的字符串处理逻辑,这就给你两种满足需求的解法,分别对应提取gmail.com或者gmail的场景:
在Twig中从邮箱提取域名的实现方案
场景1:提取完整域名(比如gmail.com)
Twig自带的split过滤器可以轻松按指定字符分割字符串,我们以@为分隔符拆分邮箱,取拆分后的第二个元素就是完整域名:
<p>{{ app.user }}</p> <p>{{ app.user|split('@')[1] }}</p>
当app.user的值是xyz@gmail.com时,这段代码会输出:
xyz@gmail.com
gmail.com
场景2:提取域名前缀(比如gmail)
如果只需要@后面的主域名部分(不带.com这类后缀),可以在上面的基础上再用split按.分割一次,取第一个元素:
<p>{{ app.user }}</p> <p>{{ app.user|split('@')[1]|split('.')[0] }}</p>
对应的输出会是:
xyz@gmail.com
gmail
额外容错小技巧
如果担心app.user可能出现格式不规范的情况(比如没有@符号),可以加上default过滤器避免页面报错,同时给出友好提示:
{# 完整域名的容错写法 #} <p>{{ app.user|split('@')[1]|default('未知域名') }}</p> {# 域名前缀的容错写法 #} <p>{{ (app.user|split('@')[1]|split('.')[0])|default('未知域名') }}</p>
内容的提问来源于stack exchange,提问作者PCmad80
相关产品推荐
相关产品推荐

