一个中文算两个字符

160 阅读1分钟
{getFieldDecorator("custom_text", {
                            rules: [
                                { required: true, message: "请输入" },
                                {validator:(rules,value,callback)=>{
                                    let len = 0
                                    for (var i = 0; i < value.length; i++) {
                                        var a = value.charAt(i);
                                        if (a.match(/[^\x00-\xff]/ig) != null) {//\x00-\xff→GBK双字节编码范围
                                            len += 2;
                                        }
                                        else {
                                            len += 1;
                                        }
                                    }
                                    if(len>10){
                                        callback('最多输入10个字符')
                                    }
                                    callback()
                                }}
                            ],
                        })(
                            <Input
                                className="input_width"
                                style={{ width: 225, }}
                                placeholder="请输入"
                            />
                        )}