|
def is_full_width_char(ch): |
|
"""判断给定的单个字符是否是全角字符""" |
|
if '\u4e00' <= ch <= '\u9fff': |
|
return True |
|
if '\uff01' <= ch <= '\uff5e': |
|
return True |
|
if '\u3000' <= ch <= '\u303f': |
|
return True |
|
return False |
|
|
|
def scolling_visual_effect(text, scroller_max_len): |
|
text = text.\ |
|
replace('\n', '').replace('`', '.').replace(' ', '.').replace('<br/>', '.....').replace('$', '.') |
|
place_take_cnt = 0 |
|
pointer = len(text) - 1 |
|
|
|
if len(text) < scroller_max_len: |
|
return text |
|
|
|
while place_take_cnt < scroller_max_len and pointer > 0: |
|
if is_full_width_char(text[pointer]): place_take_cnt += 2 |
|
else: place_take_cnt += 1 |
|
pointer -= 1 |
|
|
|
return text[pointer:] |