Vyzrajte nad řetězcovými proměnnými v ASP – vyhledávání a záměny
V minulém díle seriálu o řetězcích jsme se neučili používat základní funkce pro zpracování řetězců. Dnes se dozvíte o funkcích pro vyhledávaní v řetězcích a záměnu řetězce jiným řetězcem a nakonec vám ukážu jednu užitečnou funkci, která není ve standardní výbavě Visual Basic Scriptu.
Hledání řetězce v řetězci
Jistě jste již někdy potřebovali v nějakém řetězci nalézt jiný řetězec. Pro tyto případy je Visual Basic Script vybaven funkcí Instr.
|
Funkce Instr vrátí 0 (nulu) pokud řetěze nenajde. Pokud hledaný řetězec je součástí zdrojového řetězce funkce vrátí nenulovou hodnotu, která určuje pozici počátku hledaného řetězce od počátku zdrojového řetězce. Pokud není uveden volitelný parametr start zdrojový řetězec se prohledává od počátku.
Hledání řetězce v řetězci od konce řetězce
Funkce InstrRev funguje naprosto stejně jako funkce Instr, ale s tím rozdílem, že řetězec prohledává od konce (nebo zadané pozice) směrem k začátku.
|
Funkce InstrRev vrátí 0 (nulu) pokud řetěze nenajde. Pokud hledaný řetězec je součástí zdrojového řetězce funkce vrátí nenulovou hodnotu, která určuje pozici počátku hledaného řetězce od počátku zdrojového řetězce.
POZOR – přestože funkce prohledává řetězec od konce, vrací pozici v hledaném řetězci od jeho počátku.
Pokud není uveden volitelný parametr start zdrojový řetězec se prohledává od počátku.
Náhrada řetězce v textu jiným řetězcem
Jistě jste již někdy při formátování výstupu potřebovali například nahradit obyčejné mezery mezerou pevnou. Pro tento případ tu máme funkci Replace, která si s tímto (a nejenom tímto) problémem hravě poradí.
|
Funkce Replace prochází zdrojovy_retezec a hledá v něm hledany_retezec. Pokud je hledany_retezec nalezen je nahrazen nahradnim_retezcem.
Parametr start určuje pozici ve zdrojovém řetězci od které se započne s hledáním a hrazováním. Pokud je tento parametr vynechán jsou záměny prováděny od počátku zdrojového řetězce.
Pomocí parametru pocet_zamen máte možnost omezit počet, kolikrát se provede záměna řetězců. Pokud tento parametr vynecháte záměna se provede tolikrát, kolikrát bude potřeba pro zpracování celého řetězce.
Parametr porovnání u funcí Instr,InstrRev a Replace
Pozorný čtenář si jistě všiml, že všechny tři výše uvedené funkce mají nepovinný paramtr porovnání. Tento parametr určuje jakým způsobem se bude přistupovat k analýze řetězců.
Konstanta | Hodnota | Význam | vbBinaryCompare | 0 | Řetězce si musí přesně odpovídat včetně velikosti písmen | vbTextCompare | 1 | Na velikost písmen není brán ohled. |
Pokud je tento parametr vynechán je použita hodnota 0 což znamená, že porovnávané řetězce se musí naprosto přesně shodovat včetně velikosti písmen.
Odstranění vícenásobných znaků v řetězci.
Jistě jste se již setkali s problémem, že uživatel zadal řetězec, který obsahoval zbytečné znaky (například více mezer mezi slovy). Visual Basic Script ani JavaScript nemají ve své výbavě funkci na řešení tohoto problému.
Použití samotné funkce Replace tento problém totiž neřeší dokonale, neboť je možné, že analyzovaný řetězec bude obsahovat například 3 mezery a po Replace bude obsahovat mezery dvě.
Nám to, ale moc nevadí neboť si dokážeme napsat funkci, která tuhle činnost bez problémů zastane. Co k tomu budeme potřebovat? – Funkci Instr pro zjištění existence řetězce v řetězci a funkci Replace pro záměnu řetězce řetězcem.
|
Jak funguje tato funkce si můžete vyzkoušet v příkladu. Pro lepší názornost jsou mezery nahrazeny tvrdými mezerami.
<% Function BezMezer(retezec) Do while instr(retezec," ")<>0 retezec=Replace(retezec,“ „,“ „) Loop BezMezer=retezec End Function %> <%if Request.Form("priklad")<>1 then%>
<%else retez=Request.Form("text") response.write("Zdrojový řetězec :"&replace(retez," "," ")&"
„) response.write(„Upravený řetězec :“&replace(bezmezer(retez),“ „,“ „)) Response.Write(„
Nové zadání řetězce„) end if%>
A ještě pro úplnost zdrojový kód příkladu na otestování funkce BezMezer.
|
To je pro dnešek vše. A co nás čeká příště? Dozvíte se o dalších vestavěných funkcích Visual Basic Scriptu pro práci s řetězci a přidám několik funkcí, které vám při práci s řetězci ušetří spousty práce.
Mohlo by vás také zajímat
-
Fandíme českým sportovcům a rozdáváme hosting ZDARMA!
26. července 2024 -
Rychlost serveru: Klíč k lepšímu umístění ve vyhledávačích
7. června 2024 -
Zvýšení výkonu WiFi signálu: Jak a proč používat WiFi zesilovače
28. června 2023
Nejnovější
-
Výkonný a kompaktní: ASOME Max Studio s výjimečným poměrem cena/výkon
11. listopadu 2024 -
Šokující data od Microsoftu: Kyberútoky rostou o stovky procent!
8. listopadu 2024 -
Chcete jedinečnou doménu? Objevte koncovky FOOD, MEME a MUSIC!
7. listopadu 2024 -
OpenAI představilo novou funkci ChatGPT Search
6. listopadu 2024