我有一個名為Decimal value的文本欄位。如果我輸入一個大于99的數字,即3位數或更多,它應該給我一個錯誤,說應該是2位數的小數/整數非負數,或者如果我輸入一個負數,它應該給出同樣的錯誤。對于負數,它可以正常作業。但是,如果數字是100并且大于100,即>2位數,則不作業。
下面是截圖:
因此,我想要的是,這個數字只是2位數。我需要幫助,因為我從一個月前就開始嘗試這樣做了,但卻不知道問題出在哪里。請幫助我。
uj5u.com熱心網友回復: 我認為你不需要使用regex來做這個。這樣做應該可以: Update: 用regex的方式做同樣的事情
標籤: 上一篇:NodeJS中的阻斷與非阻斷

this.state = {
error: {},
longitude: ""/span>,
number: "",
alert: false。
};
component <Grid>
<b>十進制值</b>
</Grid>
< Grid item xs={12} sm={4}>
<TextField
name="number"
value={this.state.number}>
onChange={this.handleChange}。
/>
{!this.state.number? (
<FormHelperText style={{ color:/span> "red" }}>
必須的
</FormHelperText>
) : this.state.alert? (
<FormHelperText style={{ color:/span> "red" }}>
應該是2位數的小數/整數的非負數
</FormHelperText>
) : null}。
</Grid>>
<Button onClick={this. save}>SAVE</Button>
handleChange handleChange = (event) =>/span> {
this.setState({
[event.target.name]: event.target.value。
error: {},
alert: false,
});
};
this.save save = async ( ) => {
let message = false;
if (!this.state.number||!/^[ ]? ?[0-9]*|. [0-9] )$/i.test(this.state.number) {
this.setState({alert: true})。)
message = true;
}
if (!this.state.number||!/^[ -]? ([0-9] .?[0-9]*|.[0-9] )$/i.test(this.state.number) ) {
this.setState({alert: true})。)
message = true;
}
};
save = async ( ) => {
let number = parseInt(this.state.number)
if (number < 0 || number > 99.9999999) {
this.setState({alert: true})。)
} else {
this.setState({alert: false})。)
}
};
save = async ( ) => {
let number = this.state.number.
if (!this.state.number||!/^ ?[0-9]{1,2}( . [0-9]{1,7})?$)$/i.test(this.state.number) {
this.setState({alert: true})。)
} else {
this.setState({alert: false})。)
}
};




