亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Django中文字符截取

Original 2016-11-16 16:21:26 752
abstract:Django里有 truncatewords 和 slice 兩個模板過濾器可用于字符截取。truncatewords 不支持中文,所以一般情況下,中文字符截取用 slice 即可。但兩者還是有區(qū)別的,比如有開發(fā)者提及后面的點點點。那么,就有了下面的解決方案,放這里備份。#coding=utf8 from django

Django里有 truncatewords 和 slice 兩個模板過濾器可用于字符截取。truncatewords 不支持中文,所以一般情況下,中文字符截取用 slice 即可。但兩者還是有區(qū)別的,比如有開發(fā)者提及后面的點點點。那么,就有了下面的解決方案,放這里備份。

#coding=utf8
from django.template import Library
from django.template.defaultfilters import stringfilter 

register = Library() 

@stringfilter
def truncatehanzi(value, arg):    
    """    
    Truncates a string after a certain number of words including    
    alphanumeric and CJK characters.     
    Argument: Number of words to truncate after.    
    """    
    try:
        bits = []
        for x in arg.split(u':'):
            if len(x) == 0:
                bits.append(None)
            else:
                bits.append(int(x))
        if int(x) < len(value):
            return value[slice(*bits)] + '...'
        return value[slice(*bits)]

    except (ValueError, TypeError):
        return value # Fail silently.
   
register.filter('truncatehanzi', truncatehanzi)


Release Notes

Popular Entries