我需要更好的帮助:) 我有一个输入字段,输入我的金额。我收到了价值(这样的字符串' 111,00')并且我执行了以下操作:
const newVal = value.Amount.toString().replace(/\s/, '').replace(/,/g, '.');
然后我使用自定义validatorjs
Validator.register('checkSum', value => /^(\d+[.,]|\d*[1-9])\d*$/.test(value));
如果数字为零,则响应将为true,否则为false。
但是,如果我想从自动填充我的Chrome浏览器(例如111,00)传递金额,我有一个错误(金额可以为零):(我试图用replace(/\s+/g, '')
解决这个问题,但没有发生了,我有同样的问题......我做错了什么?我该如何解决这个问题呢?
非常感谢任何帮助!
编辑:
onInputChange: (_, v) => this.handleChange({ Amount: v }),
然后
handleChange(value) {
const { name } = this.props;
let onlyAmount;
if (value.Amount) {
this.hasComma = value.Amount.toString().indexOf(',') !== -1;
const newVal = value.Amount.replace(/,/g, '.');
if (newVal.split('.')[0].length > '9') {
return false;
}
onlyAmount = {
Amount: newVal,
};
}
this.props.onChange(name, value.Amount ? onlyAmount : value);
}
在componentDidMount
中this.formValidations.addValidate(`${name}.Amount`, 'checkSum', 'Sum can't be 0');
答案 0 :(得分:0)
我发现昨天有问题。铬根本不添加空间。
.replace(/[\u2060]/g, '')
它解决了我的问题。