Сообщение от KupueIIIKo
|
Не могу я осилить регулярные выражения как ни пытался! Не дается данная наука!
|
регулярное выражение это строка,
только не обычная строка а которая пишется между двумя слешами
/строка/
вот что такое регулярне выражение.
Можно искать совпадение с текстом этой регулярной строки используя метод Матчь.
Например
"обычная строка конь".match(/регулярная строка/)
вся эта херня вернет массив всех нахождений регулярной строки внутри обысной.
"обычная строка конь".match(/конь/)
найдет слово конь в обычной строке и вернетс ним массив ["конь"]
если бы было так
"обычная конь конь строка конь".match(/конь/)
то матчь нашел бы коня 3 раза в обычной строке и вернуоло бы массив всех нахождений
["конь", "конь", "конь"]
Регулярные выражения отличается от обычных строк не только отсутствием кавычек но еще и тем что в них можно использовать специальные символы, а в строках нет.
Например в регулярных выражениях есть комбинация
\d и если мы её напишем, то этот спецсимвол(так они называются) будет означать что тут мы ожидаем увдеть цифру.
например
"обычная конь1 конь2 строка конь8".match(/конь\d/)
вернет массив из ["конь1", "конь2", "конь8"] таким образом если мы мы можем не знать какую именно цифру искать, но можем просто написать что после слова конь ожидается цифра))
каждый такой спец-символ вроде \d означает ТОЛЬКО ОДНУ ЦИФРУ)
То есть в
"конь86".match(/конь\d/) найдется только ["конь8"]
то есть если мы ождаем после коня увидеть 2 цифры
то мы должны регулярное выражение писать так
/конь\d\d/
все кони после которых идет НЕ 2 цифры не будут подходить и не проМатчатся)
и еще кое что, эти регулярки имеют типа режимы работы, они указываются после последнего слеша
/регулярка/g
/регулярка/i
/регулярка/m
g — глобальный поиск (обычно если епосле последнего слеша не поставить букву g, то ищется ТОЛКО ПЕРВОЕ СОВПАДЕНИЕ, если поставить g, то ищутся все совпадения); В примере выше с конем нужно ставить регулярку в режим
g чтобы нашлись все кони а не только первый.
i — не различать строчные и заглавные буквы;
m — многострочный поиск.
можно использовать несколько флагов(эти буковки так называются) одновременно
например
/кОнЬ/gi - искать все совпадения с регуляркой а не только первое при том не различать заглавные и строчные.
спецсимволы которые понимает регулярка можешь посмотреть вот тут
http://javascript.ru/RegExp
Например есть даже спецсимвол означающий что мы ожидаем повторение предыдущего перед ним символа один или более раз, это символ
+
то есть за место "конь86".match(/конь\d\d/) мы можем написать
"конь86".match(/конь\d+/)
тогда найдутся все кони после который идет цифрерный символ один или более раз))
так же есть спецсимвол
* он как и плюс, только означает что символ перед ним идет ноль или более раз.
То есть может быть сколько угодно раз, а может и небыть)), а с плюсом должен хотя бы один раз быть.
дальше думаю сам разберешься.