Toate elementele dintr-o pagina sunt vazute de JavaScript ca fiind obiecte.
Obiectele sunt structuri compacte de date care pot sa contina mai multe proprietati si functii (denumite Metode).
Apelarea proprietatilor si metodelor unui obiect se face cu operatorul punct (.)
obiect.prorietate obiect.metoda()
String (sau sir) e obiectul care contine text adaugat intre ghilimele simple sau duble.
Un obiect de tip String se poate crea folosind ghilimele sau cu instructiunea new String()
.
//definire String cu new var str = new String('text..'); //definire String direct cu ghilimele var str ='Text..'; //sau var str ="Text..";• In general se folosesc direct ghilimele, iar toate valorile incadrate intre ghilimele sunt vazute in JavaScript ca 'String' si pot folosi proprietatile si metodele obiectului String.
Obiectul String are o singura proprietate: length
, aceasta contine numarul de caractere din sir.
let str ='Tutorial JS'; let nr_chr = str.length; // 11Se poate citi orice caracter din sir folosind numarul de ordine (indexul) care incepe de la 0. Primul caracter are index 0 (
str[0]
), al doilea are index 1 (str[1]
), etc.<div id='dv1'>HTML coontent.</div> <script> let str ='some_str'; //afiseaza in #dv1 numarul de caractere din 'str' si al treilea caracter document.getElementById('dv1').innerHTML ='Sirul "some_str" are '+ str.length +' caractere; al treilea e: '+ str[2]; </script>
Obiectul String contine numeroase metode care pot fi utile in lucru cu siruri. O lista cu metode pentru siruri gasiti la pagina: Metode ale obiectului String in JS.
- Iata exemple cu unele din cele mai folosite metode pentru siruri.
indexOf()
e utila pentru a verifica daca un sir contine un anumit subsir.<div id='dv1'>Exemplu cu indexOf().</div> <script> let str ='In spiritul libertatii.'; //daca str contine 'spirit', adauga indexul de inceput in #dv1 var ix = str.indexOf('spirit'); if(ix !=-1){ document.getElementById('dv1').innerHTML ='Cuvantul "spirit" incepe de la index: '+ ix; } </script>
match()
e utila pentru a compara un sir cu o expresie regulata (RegExp). Returneaza un array cu elementele din sir care se potrivesc cu expresia regulata, sau 'null'.<div id='dv1'>Exemplu JavaScript cu match().</div> <script> const email ='some_name@domain.net'; //is_em e un array de forma ['email', 'nume', 'domeniu'] sau null var is_em = email.match(/^([A-z0-9]+[A-z0-9._%-]*)@([A-z0-9_\-\.]+\.[A-z]{2,5})$/i); //daca la email e o adresa valida de email, adauga in #dv1 numele din adresa if(is_em){ document.getElementById('dv1').innerHTML ='Numele din adresa "'+email+'" este: '+ is_em[1]; } </script>
Se pot aplica mai multe metode (inlantuite) la un sir, in aceeasi linie de cod.
str.metoda1().metoda2()
- Exemplu cu replace()
si trim()
.
Metoda replace()
inlocuieste intr-un sir unele caractere specificate (sau expresie RegExp) cu altele noi specificate.
Metoda trim()
sterge spatiile goale de la inceputul si sfarsitul unui sir.
<div id='dv1'>Exemplu JavaScript cu metode inlantuite.</div> <script> let htm ='<h3>Astazi e o zi Fericita</h3>'; //inlocuieste < si > din htm cu entitatile html, aplica trim() si adauga sirul in #dv1 htm = htm.replace(/</ig, '<').replace(/>/ig, '>').trim(); document.getElementById('dv1').innerHTML = htm; </script>
var str ='Un text cu "ghilimele" duble'; var str ="Un text cu 'ghilimele' simple";
var str ='Un text cu \'ghilimele simple\' ca cele la definire'; var str ="Alt text cu \"ghilimele duble\", ca si cele de definire";
<pre id='pr1'>HTML content, object string.</pre> <script> let str ='Sir definit intre \'ghilimele simple\', \n adaugate cu backslash \\, \n dar contine si "ghilimele duble".'; document.getElementById('pr1').innerHTML = str; </script>
var tmp =`string text line 1 Line 2 si ${js_expression} expresie de cod.`;- js_expression poate fi o variabila JavaScript, apelarea unei functii sau o expresie JS cu valori. Acestea se adauga intre: ${} si sunt executate ca orice cod JavaScript.
<pre id='pr1'>Template string, HTML content</pre> <script> //se definesc variabile si o functie (arrow) care vor fi utilizate in sirul template let str_st ='Sir Template'; let arr =[8, 0]; const sumXY =(x, y)=>(x+y); //sirul template var tmp =`<h3>Acesta e ${str_st} din JavaScript</h3> Apelare functie sumXY(): suma 7+8 = ${sumXY(7,8)} Si o linie cu <strong>expresie JS, 8*0 = ${arr[0] * arr[1]}</strong>.`; //adauga sirur rezultat in #pr1 document.getElementById('pr1').innerHTML = tmp; </script>
In interiorul unui sir template, caracterul accent prin care e definit se poate adauga escapat (\`).
<ul> <li>http://coursesweb.net/html/</li> <li>http://www.marplo.net/html/</li> </ul>
.some_class { display: list-item; }
var obj = { "courses": ["php", "javascript", "ajax"] }; var jsonstr = JSON.stringify(obj); alert(jsonstr); // {"courses":["php","javascript","ajax"]}
$strhtml = '<body><div id="dv1">CoursesWeb.net</div></body>'; $dochtml = new DOMDocument(); $dochtml->loadHTML($strhtml); $elm = $dochtml->getElementById("dv1"); echo $elm->nodeValue; // CoursesWeb.net
I`m living here. - Traiesc /Locuiesc aici.
Estoy viviendo aquĆ. - Traiesc /Locuiesc aici.