Ваше выражение в выражении также удаляет любые точки (.
). Это приведет к потере любых поплавков. Если вы хотите включить float, вам нужно добавить .
в ваше регулярное выражение.
Тогда вам нужно всего лишь проанализировать ваш текст, чтобы он плавал, и проверить, меньше ли это max float.
Образец
handleTextChange = (text) => {
const newAmount = parseFloat(text.replace(/[^1-9.]/g, ''));
this.setState({
billAmount: newAmount > 10000 ? '9999.99' : newAmount + ''
});
}
Можете ли вы попробовать адрес следующим образом:
Address = x.Address?.FirstLine + " " + x.Address?.SecondLine,
Если вы не хотите пробелов, попробуйте, как показано ниже:
Address = x.Address == null ? null : (x.Address.FirstLine + " " + x.Address.SecondLine),
Как я сказал в комментарии, вы должны сделать это в одном утверждении:
vm.List = _context.Person
.Select(p => new IndexListItem
{
Name = p.Name,
Address = p.Address.FirstLine + " " + p.Address.SecondLine,
ID = p.ID
}).ToList();
Это имеет два преимущества:
Если вы не хотите, чтобы " "
в результате вы могли сделать ...
Address = (p.Address.FirstLine + " " + p.Address.SecondLine).Trim()
... или ...
Address = p.Address.FirstLine != null ? p.Address.FirstLine + " " : "")
+ p.Address.SecondLine
Но я не думаю, что это имеет большое значение для просмотра данных.