格式化数字(每几个数字后加一个空格)

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
51
52
53
54
onInput = ({ detail }) => {
        const value = detail.value; // 输入的字符串
        const newValue = value.replace(/([^0-9])/g, ''); // 只允许输入数字
        const formatValue = newValue.replace(/(\d{4})(?=\d)/g, '$1 '); // 每4个数字后面加一个空格
        const inputLen = this.getOriginValue().length;
        if (inputLen > this.maxLen) { // 如果输入的字符大于最大输入长度则禁止继续输入
            this.inputRef.inputRef.value = this.state.recharge_phone;
            return;
        }
 
        const end = () => {
            setTimeout(() => {
                this.end();
            }, 10);
        };
 
        if (inputLen >= this.minLen) {
            this.setState({ isValidNo: true, recharge_phone: formatValue }, end);
        } else {
            this.setState(
                { isValidNo: false, recharge_phone: formatValue, activeItem: -1 },
                end
            );
        }
 
        return formatValue;
    };
 
 
     /**
     * 移动光标位置到最后面
     */
    end() {
        const obj = this.inputRef.inputRef;
        const len = this.state.recharge_phone.length;
        if (document.hasOwnProperty('selection')) {
            const sel = obj.createTextRange();
            sel.moveStart('character', len);
            sel.collapse();
            sel.select();
        } else if (
            typeof obj.selectionStart === 'number' &&
            typeof obj.selectionEnd === 'number'
        ) {
            obj.selectionStart = obj.selectionEnd = len + 1;
        }
    }
 
    /**
     * 获取input的原始值
     */
    getOriginValue() {
        return this.inputRef.inputRef.value.split(' ').join('');
    }

  

posted @   向着太阳生  阅读(649)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示