Size: a a a

ECMAScript Developers

2020 March 30

MI

Maral Islamova in ECMAScript Developers
класс, помогло )
источник

АД

Адылбек Джороев in ECMAScript Developers
О, круто, я мало был уверен, что поможет)
источник
2020 April 01

LF

Libron FCB in ECMAScript Developers
Всем привет. Нужна помощь экспертов по регулярке. Есть селект с поиском, где я делаю short-list. Все работает до тех пор пока я не введу спец символы. Фрагмент кода такой:
 const regex = new RegExp(`${e.target.value}`, 'gi');
   return this.shortList = this.props.options.filter(item => item.label.match(regex) !== null);
источник

LF

Libron FCB in ECMAScript Developers
Гугл подсказывает что нужно экранировать каждый введенный спец символ, может есть другой более элегантный способ ? Флаг для regex например ?
источник

L

Lightking in ECMAScript Developers
Занимаюсь продажей квартир. Не подскажите, как сделать интерактивную карту здания? Выбираешь этаж , отображается схема данного этажа, далее из этого выбираешь соответ. квартиры и тд
источник

АД

Адылбек Джороев in ECMAScript Developers
Libron FCB
Гугл подсказывает что нужно экранировать каждый введенный спец символ, может есть другой более элегантный способ ? Флаг для regex например ?
Не совсем понял твою проблему, код который ты скинул работает
источник

LF

Libron FCB in ECMAScript Developers
Адылбек Джороев
Не совсем понял твою проблему, код который ты скинул работает
Да, он рабочий если вводить буквы и цифры только. НО как только начать вводить спец символы
   ?, &, (, ), * 
вылетает ошибка, скриншот выше.
источник

LF

Libron FCB in ECMAScript Developers
Решил проблему так. Итог: поисковик работает со спец. символами в переменной specs. В противном случае сработает catch который не позволит функции упасть и кинуть ошибку.
источник

АД

Адылбек Джороев in ECMAScript Developers
Libron FCB
Да, он рабочий если вводить буквы и цифры только. НО как только начать вводить спец символы
   ?, &, (, ), * 
вылетает ошибка, скриншот выше.
А куда ты их вводишь? И как именно?
источник

LF

Libron FCB in ECMAScript Developers
Адылбек Джороев
А куда ты их вводишь? И как именно?
источник

KS

Kutman Soronbaev in ECMAScript Developers
почему не сделать бы indexOf? или ты в дальнейшем будешь манипулировать shortlist'om?
источник

LF

Libron FCB in ECMAScript Developers
Kutman Soronbaev
почему не сделать бы indexOf? или ты в дальнейшем будешь манипулировать shortlist'om?
indexOf ищет же точное совпадение то есть str === str.
Мне же надо найти первое вхождение. Поправь если я ошибаюсь 🤔
Ща попробую переделать под индексоф, посмотрим чё получится

UPD: indexOf не решает проблему, так как возвращает только 1 элемент в массиве + ТОЧНОЕ совпадание
источник

KS

Kutman Soronbaev in ECMAScript Developers
Libron FCB
indexOf ищет же точное совпадение то есть str === str.
Мне же надо найти первое вхождение. Поправь если я ошибаюсь 🤔
Ща попробую переделать под индексоф, посмотрим чё получится

UPD: indexOf не решает проблему, так как возвращает только 1 элемент в массиве + ТОЧНОЕ совпадание
onChange = (e) => {
   const shortList = this.state.options.filter(text => {
     return text.toLowerCase().includes(e.target.value.toLowerCase())
   })
   return this.setState({...this.state, shortList })
 }
источник

LF

Libron FCB in ECMAScript Developers
Kutman Soronbaev
onChange = (e) => {
   const shortList = this.state.options.filter(text => {
     return text.toLowerCase().includes(e.target.value.toLowerCase())
   })
   return this.setState({...this.state, shortList })
 }
👍 this works, thanks
источник

LF

Libron FCB in ECMAScript Developers
@Wendedanse в чем магия ? ))
источник

KS

Kutman Soronbaev in ECMAScript Developers
Kutman Soronbaev
onChange = (e) => {
   const shortList = this.state.options.filter(text => {
     return text.toLowerCase().includes(e.target.value.toLowerCase())
   })
   return this.setState({...this.state, shortList })
 }
здесь он будет сравнивать каждое слово
источник

KS

Kutman Soronbaev in ECMAScript Developers
Libron FCB
@Wendedanse в чем магия ? ))
там элемент
источник

АД

Адылбек Джороев in ECMAScript Developers
Libron FCB
@Wendedanse в чем магия ? ))
В массивах метод includes ищет совпадение со значением ячейки, у строки includes ищет совпадение с рядом символов, то есть часть строки
источник

LF

Libron FCB in ECMAScript Developers
Адылбек Джороев
В массивах метод includes ищет совпадение со значением ячейки, у строки includes ищет совпадение с рядом символов, то есть часть строки
аа да точно, туплю 😁🤦‍♂️. Спасибо 👍
источник

АД

Адылбек Джороев in ECMAScript Developers
если надо искать часть строки ячейки массива можно вот так:
arr.some((el) => el.includes(‘my string’))
источник