47,9 тыс подписчиков
Если речь про регулярные выражения, то ответ у вас почти есть:
- [0-9] означает "любой символ от 0 до 9" (то есть любая цифра)
- [^0-9] означает "любой символ кроме тех что от 0 до 9" (то есть всё остальное, включая пробел)
После скобок также нужно добавить "+", чтобы искался не один символ, а серия таких символов ("плюс" в регулярке значит "от одного и больше").
Применяем полученные знания:
"Тест 555554".match(/[0-9]+/)[0] // вернёт '555554'
"Тест 555554".match(/[^0-9]+/)[0] // вернёт 'Тест '
Однако паролем могут быть не только цифры, так что по цифрам искать ненадёжно. Альтернативно можно взять части строки до и после первого пробела. На языке регулярных выражений это записывается так:
- ^.*?\s означает "взять от начала строки минимальное количество символов, заканчивающихся пробелом". В данном контексте символ ^ это не отрицание, а начало строки. Да, регулярки — штука запутанная.
- \s.*$ означает "взять максимальное количество символов от пробела до конца строки"
Проверяем:
"Тест 555554".match(/^.*?\s/)[0] // вернёт ' 555554'
"Тест 555554".match(/\s.*$/)[0] // вернёт 'Тест '
Как видите, результаты немного отличаются — теперь у нас в пароль затесался пробел. Если нужно искать по условию "начиная с пробела, не считая сам пробел", то в регулярках для этого можно использовать группы (скобки), или можно вырезать пробел уже из результата. В общем, нюансов много, обсуждать их можно долго, но основное направление я подсказал.
1 минута
23 декабря 2021