Tutorial MooTools pasul 9 Filtrarea stringurilor introduse de utilizator

 

Precum am spus intr-un articol anterior, astazi ne vom ocupa de filtrarea stringurilor introduse de la tastatura. Vom aborda partial capacitatile Mootools referitoare la stringuri, nediscutand despre cateva functii esoterice precum toCamelCase() sau orice functionalitati ale stringurilor ce se ocupa cu expresii.

Inainte sa incepem, sa discutam un pic despre modul in care functiile ce se ocupa de stringuri sunt apelate. In exemplele de mai jos, vom apela aceste functii prin variabile cu stringuri in ele, ca in exemplul de mai jos:

var variabila_de_text = "Aici scriem niste text";
var functia_rezultat = variabila_de_text.oFunctieCuStringuri();

Trebuie mentionat ca aceste functii pentru stringuri pot fi apelate, fara a declara o variabila astfel:

var functia_rezultat = "Aici scriem niste text".oFunctieCuStringuri();

Acest lucru este valabil si pentru functiile pentru numere in Mootools, dupa cum urmeaza:

//Observati folosirea parantezelor pentru numere, in timp ce pentru stringuri se folosesc apostrofuri
var numar_limitat = (256).limit(1, 100);

Functia trim() este folosita pentru a scapa de spatiile de la inceputul si sfarsitul stringului asupra caruia aceasta e folosita.

//acesta este stringul asupra caruia aplicam functia trim()
var text_cu_spatii =  "    \nString cu Spatii     ";
//  dupa aplicarea functiei, stringul va fi "String cu Spatii"
var text_fara_spatiit = text_cu_spatii.trim();

Observati prezenta in stringul original al elementului html Newline (/n), folosita pentru a trece la o linie noua. Aceasta trecere este considerata ca spatiu de catre functia trim() si astfel eliminata. Ceea ce functia trim() nu reuseste sa faca, este sa scape de spatiile in plus din interiorul stringului. Mai jos, observam un astfel de exemplu:

var trimDemo = function(){
//incarcam textul pe care trebuie sa il scapam de spatii
var text_cu_spatii =  '            \nfoarte    multe    spatii\n              ';
//aplicam functia trim()
var text_fara_spatii = text_cu_spatii.trim();
// in final textul va arata "foarte    multe    spatii". Observati ca spatiile din interior raman
}

Ideea este oarecum logica, in general nu aveti nevoie sa scapati de spatii din interiorul stringului, dar, pentru a evita anumite neglijente, Mootools va ofera oricum solutia, si anume functia clear().

//acesta este stringul caruia ii aplicam functia clean()
var text_cu_spatii =  "    \nString     \nCu    Mult \n \n    Mai  Multe     \nSpatii  \n   ";
//  in final, textul va arata "String Cu Mult Mai Multe Spatii"
var text_fara_spatii = text_cu_spatii.clean();

Functia clean() functioneaza la fel ca si trim() cu o singura diferenta, anume ca nu restrictioneaza curatarea spatiilor la inainte si dupa stringul respectiv, ci o face si intre cuvintele stringului. Acest lucru inseamna stergerea tuturor spatiilor mai mult de unul intre litere, a tuturor elementelor Newline sau taburilor

Functia contains() verifica daca stringul respectiv contine un substring definit anterior si returneaza 'true' daca il gaseste si 'false' daca nu.

//stringul in care cautam
var string_mare = "Cautam cuvantul spider in acest string";
//cauta substringul "spider" in stringul definit
var substring_cautat = string_mare.contains('spider');
//cauta cuvantul "solutions", substring_inexistent va returna 'false'
substring_inexistent = string_mare.contains('solutions');

Acest lucru poate fi folositor in mai multe situatii, iar cand este folosit in combinatie cu altele, precum functia Array.each() studiata anterior, se pot realiza taskuri relativ complicate cu un cod minimal. De exemplu, daca folosim o multime cu o lista de cuvinte, cu ajutorul lui each() putem cauta mai multe substringuri folosind foarte putin cod:

string_mare = "Cautam cuvantul spider in acest string";
multime_de_cuvinte = ['Cautam', 'spider', 'string'];
//trecem fiecare cuvant din multime sub forma unei variabile
multime_de_cuvinte.each(function(cuvantul_cautat)
{
//cauta cuvintele
if (string_mare.contains(cuvantul_cautat))
{
alert('am gasit ' + cuvantul_cautat);
};
});
 //alertele vor afisa cuvintele gasite

Vom discuta astazi un pic si despre functia substitute(), care e foarte puternica in MooTools, dar foloseste expresii regulate, iar despre acest lucru vom vorbi intr-un tutorial viitor. Totusi, chiar si fara acestea, se pot realiza destul de multe:

//Acesta este textul pe care functia substitute il va folosi. Observati ca acele cuvinte pe care le vom inlocui se afla intre acolade
var text_de_substituit = "Spider inseamna {nimic},  Web inseamna {altceva}, Totul {exista}.";
//Acesta este obiectul ce detine regulile de substituire
//cuvintele din stanga sunt termenii de cautare
//cuvintele din dreapta sunt cele ce le vor inlocui
var obiect_substitutie = {
nimic   : 'paianjen', 
altceva   : 'mai multe lucruri', 
exista : 'este posibil...'
   };
//rezultatul va fi plasat in variabila un_nou_string
var un_nou_string = text_de_substituit.substitute(obiect_substitutie);
//un_nou_string ia astfel valoarea "Spider inseamna paianjen,  Web inseamna mai multe lucruri, Totul este posibil...."

Nu este necesara crearea obiectului de substitutie decat pentru a simplifica bucata de cod folosita, va functiona si in felul urmator:

//construiti stringul ce trebuie inlocuit
var text_de_substituit = "{Aceasta} este o companie de dezvoltare web";
//obiectul de substitutie poate fi inclus ca parametru al functiei
var un_nou_string = text_de_substituit.substitute({Aceasta : 'Spider Solutions'});
//variabila un_nou_string ia valoarea "Spider Solutions este o companie de dezvoltare web"

In tutorialele urmatoare vom mai vorbi despre functia substitute() si avantajele ei.Pentru mai multe detalii despre filtrarea stringurilor, cititi tutorialele de pe site-ul MooTools.

 

Alex B.

0Comentarii la "Tutorial MooTools pasul 9 Filtrarea stringurilor introduse de utilizator"

Adauga Comentariu

Mesaj

Trimite