| 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:] |