Nabídka portálu se při zobrazení článku přesouvá na konec pravého sloupce nabídek.
Použití operátoru LIKE |
Autor: SwitCZ
| Zdroj:
| Vytvořeno: 1.7.2003
| Publikováno: 18.8.2003
| Čtenářů: 2922
| Unikátních: 2877
|
Jednoduché ověřování řetězce podle masky.
Operátor like umožňuje vytvořit 'masku' pro zadávání řetězce, nebo může
fungovat jako ověřovací příkaz při vyhledávání.
Jde o ověření jestli první řetězec odpovídá vzorovému řetězci
(masce).
Syntax:
Návratová hodnota (Result) = vstupní řetězec LIKE maska
Možnosti zadávání masky:
? |
otazník zastupuje právě jeden znak |
* |
hvězdička zastupuje 0 nebo více znaků |
# |
zastupuje číslici |
[seznam] |
seznam povolených hodnot |
[!seznam] |
seznam zakázaných hodnot |
Pozor je trošku jiná syntaxe při použití LIKE v databázových dotazech
tam se místo "*" používá
"%".
Nakonec si ještě ukažme jak tedy operátor LIKE používat:
Ověřovaný řetězec |
Maska |
Návratová hodnota |
Popis |
741230/1999 |
##[0156]#[0123]#/###* |
True |
Jednoduché ověření
Rod.č. |
742230/1999 |
##[0156]#[0123]#/###* |
False |
třetí znak je dvojka |
abC |
[a-c][b-d][A-Z] |
True |
|
ccF |
[a-c][b-d][A-Z] |
True |
|
dcF |
[a-c][b-d][A-Z] |
False |
d není v rozsahu
[a-c] |
ccFF |
[a-c][b-d][A-Z] |
False |
navíc znak F |
ccFF |
[a-c][b-d][A-Z]* |
True |
|
G |
[!A-H] |
False |
A-H je zakázáno |
Ahoj7 |
*# |
True |
|
AhojA |
*# |
False |
Poslední znak musí být číslo |
A32-15Q5-1191 |
A##-1#Q#-##9[1-5] |
True |
|
A32-15Q5-1198 |
A##-1#Q#-##9[1-5] |
False |
Poslední musí být 1 až 5 |
Potřebujete-li vložit do masky znak "*", "?" nebo
"!" musíte ho uzavřít do hranatých závorek!
Ověřovaný řetězec |
Maska |
Návratová hodnota |
Popis |
ANO? |
[A-Z]??[?] |
True |
Poslední je otazník |
JDI! |
???[!] |
True |
Poslední je vykřičník |
aplolo13* |
*[*] |
True |
Poslední je hvězdička |
A jak tedy použít operátor LIKE v praxi, jako příklad uvedeme ověření
rodného čísla:
Function IsValidRC ( byval sRC as string) as Boolean
'rok může být od 00 do 99
' tedy ##
'měsíc může být od 01 do 31 ženy + 50
' tedy [0156]#
'den od 01 do 31
' tedy [0123]#
'Následuje / nebo -
' tedy [/-]
'A následují 3 nebo 4 číslice tedy
' ###? zde máme malou rezervu v posledním znaku
IsValidRC=False
if sRC LIKE "##[0156]#[0123]#[/-]###?" then
IsValidRC=True
end if
End Function
Funkci IsValidRC zavoláme například takto:
MsgBox IsValidRC("740531/1234")
Doufám, že Vám operátor LIKE pomůže opět o krok dále při Vašem programování :o).
|