Skip to content

Commit 370f751

Browse files
committed
regEx
1 parent 80d565f commit 370f751

File tree

1 file changed

+111
-1
lines changed

1 file changed

+111
-1
lines changed

README.md

Lines changed: 111 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,14 @@
6565
- [Důležité metody pro interakci s DOM](#důležité-metody-pro-interakci-s-dom)
6666
- [přidání interaktivity na stránku](#přidání-interaktivity-na-stránku)
6767
- [další vlastnosti](#další-vlastnosti)
68+
- [RegEx (regulární exprese)](#regex-regulární-exprese)
69+
- [metody a využití RegEx](#metody-a-využití-regex)
70+
- [match()](#match)
71+
- [replace()](#replace)
72+
- [search()](#search)
73+
- [shrnutí metod pro RegEx](#shrnutí-metod-pro-regex)
74+
- [Speciální znaky pro RegEx](#speciální-znaky-pro-regex)
75+
- [pokročilé regEx znaky](#pokročilé-regex-znaky)
6876
- [OOP (Objektově Orientované Programování)](#oop-objektově-orientované-programování)
6977
- [Začátek OOP](#začátek-oop)
7078

@@ -968,7 +976,109 @@ samozřejmě je více vlastností co můžeme přidat k HTML prvkům ale toto si
968976

969977
# RegEx (regulární exprese)
970978

971-
.
979+
RegEx neboli regulární exprese (výrazy) jsou určené k hledání `vzorů` v textu (`string`). Lze je iu využít k ověřování vstupů. Zapisují se pomocí `/` na začátku a na konci, vše mezi lomítky je vyhledávaný výraz, lze tam mít znaky (a,b,c.. 1,2,3.. apod.) a pak tam jsou znaky co mají nějaké speciální využití (k nim později).
980+
981+
```js
982+
let RegEx = /abc/
983+
let RegEx1 = /car/
984+
```
985+
986+
## metody a využití RegEx
987+
988+
RegEx mají metody, které nám pomáhají hledat vzory, upravovat vstupy atd. Jedena z nejčastější metod je `.test()`, která "zkouší" jestli ten vstup v závorkách je pravdivý pro ten specifický RegEx.
989+
990+
```js
991+
let regex = /abc/
992+
console.log(regex.test("acd")) //výstup: false
993+
console.log(regex.test("abc")) //výstup: true
994+
```
995+
996+
## match()
997+
998+
Další metodou je `.match()`, který hledá text podle RegEx a vrací pole s výsledky nebo `null` když nic nenajde.
999+
1000+
```js
1001+
let vstup = "Je toto ale krásný den"
1002+
let regex = /ale/
1003+
console.log(vstup.match(regex))
1004+
//[ 'ale', index: 8, input: 'Je toto ale krásný den', groups: undefined ]
1005+
```
1006+
1007+
## replace()
1008+
1009+
Metoda `replace()` nahradí první nebo všechny výskyty, které odpovídají RegEx.
1010+
1011+
1012+
```js
1013+
let regEx = /koala/
1014+
let vstup = "koala je zajímavé zvíře, koala.."
1015+
console.log(vstup.replace(regEx, "kočka"))
1016+
//výstup: "kočka je zajímavé zvíře, koala.."
1017+
```
1018+
1019+
Pokud chceme nahradit všechny výskyty můžeme použít `g` na konci RegEx.
1020+
1021+
```js
1022+
let regEx = /koala/g
1023+
let vstup = "koala je zajímavé zvíře, koala.."
1024+
console.log(vstup.replace(regEx, "kočka"))
1025+
//výstup: "kočka je zajímavé zvíře, kočka.."
1026+
```
1027+
1028+
## search()
1029+
1030+
Metoda `search()` vrací první index prvního výskytu nebo `-1`, jestli tam není to co hledá.
1031+
1032+
```js
1033+
let regEx = /den/
1034+
let vstup = "dneska je krásný den"
1035+
console.log(vstup.search(regEx)) // výstup: 17
1036+
```
1037+
1038+
Příklad kdy se nenajde nic ve vstupu.
1039+
1040+
```js
1041+
let regEx = /pes/
1042+
let vstup = "dneska je krásný den"
1043+
console.log(vstup.search(regEx)) // výstup: -1
1044+
```
1045+
1046+
## shrnutí metod pro RegEx
1047+
1048+
|metoda|význam|return|
1049+
|:---------|:--------|:---------|
1050+
|match()|hledá shodu textu s RegEx|výsledek (pole) nebo `nul`|
1051+
|replace()|nahradí text podle RegEx|řetězec s nahrazením podle RegEx|
1052+
|search()|hledá první výskyt|index výskytu nebo `-1`|
1053+
1054+
## Speciální znaky pro RegEx
1055+
1056+
Speciální znaky nám umožňují vyhledávat speciální sekvence znaků, můžeme díky nim přiblížit naše hledání ještě blíž.
1057+
1058+
|znak|význam|příklad*y|
1059+
|:----|:----|:-----|
1060+
|`.`|tento znak znamená jakýkoliv až na nový řádek|`/a.a/` -> `aba`, `ada`..|
1061+
|`^`|tento znak znamená že to co za ním následuje je na začátku řetězce|`/^ahoj/` -> `"ahoj kamarádi"` == `true`, `"něco ahoj"` == `false`|
1062+
|`$`|tento znak znamená že to co je předním je na konci řetězce|`/ahoj$/` -> `"světe ahoj"` == `true`,`"ahoj světe"` == `false`|
1063+
|`*`|tento znak znamená že znak předním se může opakovat 0 nebo více opakování (jiný znak udělá false)|`/ho*/` -> `"ho"`, `"h"`, `"hoo"`, `"ho7485"` == všechny `true`, `"he"`, `"hi"` == všechny `false`|
1064+
|`+`|tento znak znamená že znak předním se musí opakovat minimálně jednou|`/ho+/` -> `"ho"`, `"hoo"` .. == všechny `true`, `"h"` == `false`|
1065+
|{n}| má přesně `n` počet opakování|`/o{2}/` -> `"oo"` == `true`, ostatní `false`|
1066+
|{n,}|má alespoň `n` opakování|`/o{2,}/` -> `"oo"`, `"ooo"` == všechny `true`, ostatní `false`|
1067+
|{n,m}|je tam mezi `n` a `m` opakování|`/o{2,3}/` -> `"oo"` a `"ooo"` true, ostatní `false`|
1068+
|\ |tento znak nám dělá možné využít znaky bez jejich významu v RegEx|`/\./` -> `"."` ´´ `true`, ostatní `false`|
1069+
1070+
## pokročilé regEx znaky
1071+
1072+
|znak|význam|příklad*y|
1073+
|:---|:---|:---|
1074+
|\d|jakékoliv číslo `0-9`|`/\d/` -> `"123"` == `true` `"abc"` == `false`|
1075+
|\D|jakékoliv znaky až na čísla|`/\D/` -> `"abc"` == `true`, `"132"` == `false` |
1076+
|\w|alfanumerické znaky (`a-z`, `A-Z`, `0-9`, `_`)|`/\w+/` -> `"kočka_4554534"` == true|
1077+
|\W|jakékoliv znaky až na alfanumerické|`/\W/` -> `"@&#"` == `true`, `"abcd"` == `false`|
1078+
|\s|mezera, tab nebo nové řádky (white space)|`/\s/` -> `" "` == `true`|
1079+
|\S|jakékoliv znaky mimo mezery, tab nebo nové řádky (white space)|`/\S+/` -> `"nějaký string"` == `true`|
1080+
|\b|hranice slova|`/\bkat\b/` -> `"kat"` == `true`, `"kategorie"` == `false`|
1081+
|\B|nehranice slova|`/\bkat\b/` -> `"kategorie"` == `true`, `"kat"` == `false`|
9721082

9731083
# OOP (Objektově Orientované Programování)
9741084

0 commit comments

Comments
 (0)