保誠-保戶業務員媒合平台
HelenHuang
2022-06-09 9bdb95c9e34cef640534e5e5a1e2225a80442000
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/* eslint-disable yoda */
'use strict';
 
const isFullwidthCodePoint = codePoint => {
    if (Number.isNaN(codePoint)) {
        return false;
    }
 
    // Code points are derived from:
    // http://www.unix.org/Public/UNIDATA/EastAsianWidth.txt
    if (
        codePoint >= 0x1100 && (
            codePoint <= 0x115F || // Hangul Jamo
            codePoint === 0x2329 || // LEFT-POINTING ANGLE BRACKET
            codePoint === 0x232A || // RIGHT-POINTING ANGLE BRACKET
            // CJK Radicals Supplement .. Enclosed CJK Letters and Months
            (0x2E80 <= codePoint && codePoint <= 0x3247 && codePoint !== 0x303F) ||
            // Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A
            (0x3250 <= codePoint && codePoint <= 0x4DBF) ||
            // CJK Unified Ideographs .. Yi Radicals
            (0x4E00 <= codePoint && codePoint <= 0xA4C6) ||
            // Hangul Jamo Extended-A
            (0xA960 <= codePoint && codePoint <= 0xA97C) ||
            // Hangul Syllables
            (0xAC00 <= codePoint && codePoint <= 0xD7A3) ||
            // CJK Compatibility Ideographs
            (0xF900 <= codePoint && codePoint <= 0xFAFF) ||
            // Vertical Forms
            (0xFE10 <= codePoint && codePoint <= 0xFE19) ||
            // CJK Compatibility Forms .. Small Form Variants
            (0xFE30 <= codePoint && codePoint <= 0xFE6B) ||
            // Halfwidth and Fullwidth Forms
            (0xFF01 <= codePoint && codePoint <= 0xFF60) ||
            (0xFFE0 <= codePoint && codePoint <= 0xFFE6) ||
            // Kana Supplement
            (0x1B000 <= codePoint && codePoint <= 0x1B001) ||
            // Enclosed Ideographic Supplement
            (0x1F200 <= codePoint && codePoint <= 0x1F251) ||
            // CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane
            (0x20000 <= codePoint && codePoint <= 0x3FFFD)
        )
    ) {
        return true;
    }
 
    return false;
};
 
module.exports = isFullwidthCodePoint;
module.exports.default = isFullwidthCodePoint;