Добавление проверки на спец символы react
хочу сделать проверку в поиске на спец символы.
Запретить ввод спец символов при поиске на странице.
Реализация с помощью regexp - все что не буква или цифра (и пробел) вводить нельзя.
Я только начала изучение React и не могу понять как дописать с useState правильно.
Объявляю state
const [search, setSearch] = useState('');
const [inputValue, setInputValue] = useState();
Поиск:
const inputChangeHandler = e => {
const regexp = /[^A-Za-z0-9]+/g;
const rawValue = e.target.value;
const trimmedValue = rawValue.trim();
searchByName(trimmedValue.toLowerCase());
if (regexp.test(trimmedValue)) { //проверка
console.log('Да');
const newInputValue = setInputValue(inputValue);
console.log(newInputValue);
}
};
Код Input'a
<input
type="text"
value={inputValue}
autoFocus={false}
className={styles.gameSearchInput}
onChange={inputChangeHandler}
placeholder='Поиск'
/>
Ответы (1 шт):
Автор решения: MrYogurt
→ Ссылка
const newInputValue = setInputValue(inputValue);
Здесь вы создаете константу и присваиваете ей функцию изменения состояния, зачем?
Если ваша проверка прошла, то установка состояния будет setInputValue(trimmedValue), без всяких присваиваний:
if (regexp.test(trimmedValue)) {
setInputValue(trimmedValue);
}