react-native input显示千分位

Posted CoderForHope

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了react-native input显示千分位相关的知识,希望对你有一定的参考价值。

<Input
                                disabled=this.state.disabled
                                value=this.state.minRateAmountInput
                                inputStyle=styles.input
                                leftIcon=() => <Iconfont size=20 style=paddingLeft: 10 unicode=`\\ue611`
                                                          color=Colors.successColor/>
                                renderErrorMessage=false
                                containerStyle=styles.inputContainerStyle
                                keyboardType='decimal-pad'
                                onEndEditing=this.handleConcreteMinRateChange
                                onChangeText=(value) => 
                                    if (!value.endsWith(".")) 
                                        this.setState(
                                            minRateAmountInput: this.formatNumberThree(value.replaceAll(",", ""))
                                        );
                                     else 
                                        this.setState(
                                            minRateAmountInput: value
                                        );
                                    
                                />

其中的formatter函数:

formatNumberThree(strNum): number 
        if (!strNum) 
            return strNum;
        
        if (strNum.length <= 3) 
            return strNum;
        
        if (!/^(\\+|-)?(\\d+)(\\.\\d+)?$/.test(strNum)) 
            return strNum;
        
        var a = RegExp.$1,
            b = RegExp.$2,
            c = RegExp.$3;
        var re = new RegExp();
        re.compile("(\\\\d)(\\\\d3)(,|$)");
        while (re.test(b)) 
            b = b.replace(re, "$1,$2$3");
        
        return a + "" + b + "" + c;
    

在需要使用state中保存的input值只需要

this.state.minRateAmountInput.replaceAll(",", "")

即可 

android平台对replaceAll支持可能会存在问题,可以使用replace的全局替换,即

this.state.minRateAmountInput.replace(/,/g, "")

以上是关于react-native input显示千分位的主要内容,如果未能解决你的问题,请参考以下文章

react-native input显示千分位

react-native input显示千分位

AngularJs 输入框千分位指令

js 数字转千分位 简单点的

js实现金额千分位显示

OpenERP ODOO 千分位设置