Curs Javascript

In aceasta pagina e prezentata o clasa ce poate fi utilizata in JavaScript pentru impartirea /separarea unui sir alfanumeric (un sir cu mai multe sub-siruri de forma: "Nume Numar", separate printr-un anumit caracter).
Aceasta clasa contine o metoda ce separa "Nume" de "Numar" si le adauga separat intr-un obiect cu doua array-uri, in ordinea lor din sir.
- Vedeti exemplele si comentariile din cod.

Codul clasei

// clasa pt impartire sir Alfanumeric, de la: https://marplo.net/javascript/
function splitStr() {
  /*
 - $str = sirul alfanumeric,
 - $dlm1 = caracterul ce separa Nume de Numar
 - $dlm2 = caracterul ce separa perechile de sub-siruri: "Nume Numar"

 Un sir in felul acesta:
     "Nume[$dlm1]Numar[$dlm2]Nume[$dlm1]Numar"
  - caracterele de separare ($dlm1, si $dlm2) pot fi orice caracter, de exemplu: spatiu, liniuta, punct, virgula, etc.
 Aceasta metoda returneaza un obiect cu 2 array ('name' si 'num'), cu Nume si Numar din $str separate, in ordinea lor din sir
  */
  this.splitNameNumber = function(str, dlm1, dlm2) {
    // JavaScript-jQuery course: https://marplo.net/javascript/
  // si cu caractere ce trebuie escapate (cu '\') in RegExp
    var chrs = '.()[]<>?\'^*-+\\/';
    if(chrs.indexOf(dlm1) != -1) dlm1 = '\\'+dlm1;
    if(chrs.indexOf(dlm2) != -1) dlm2 = '\\'+dlm2;

    // seteaza sablonul RegExp folosit pt separare Nume, Numar si sub-siruri
    var patt1 = new RegExp('([a-z \\._\\-'+ dlm1 + dlm2+ ']+[0-9]+)', 'ig');
    var patt2 = new RegExp('([a-z \\._\\-'+ dlm1+ ']+)([0-9]+)', 'ig');

    var substr = str.split(patt1);          // array cu sub-siruri

    if(substr != null && substr != '') {
      var re = {"name":[], "num":[]};           // variabila pt datele care vor fi returnate
      var ir = 0;               // pt definire index elemente in re
      nrsubstr = substr.length;      // number of matched substrings

    // parcurge sub-sirurile gasite
      for(i=0; i<nrsubstr; i++) {
        // daca nu e gol
        if(substr[i] != '') {
          var name_num = substr[i].split(patt2);       // array cu Nume si Numar separate din sub-sirul curent

          // adauga Nume si Numar separate in array-urile din obiectul din re
          if(name_num != '') {
            re['name'][ir] = trim(trim(name_num[1], dlm1));
            re['num'][ir] = name_num[2];
            ir++;
          }
        }
      }

      return re;
    }
    else return false;
  }

  // functie pt stergere anumite caractere de la inceputul si sfarsitul unui sir
  var trim = function(str, chr) {
    var rgxtrim = (!chr) ? new RegExp('^\\s+|\\s+$', 'g') : new RegExp('^'+chr+'+|'+chr+'+$', 'g');
    return str.replace(rgxtrim, '');
  }
}
Ca sa folositi aceasta clasa, trebuie mai intai creat un obiect la ea, cu sintaxa:
var numeObiect = new splitStr();
Apoi se acceseaza metoda splitNameNumber(), transferand la argumente sirul si caracterele de delimitare
var obNameNums = numeObiect.splitNameNumber(str, dlm1, dlm2);

• Iata un exemplu practic de utilizare a acestei clase.
In acest exemplu se foloseste metoda splitNameNumber() pentru a separa Nume si Numar din sirurile adaugate in trei DIV-uri. Cand se apasa clic pe un buton cu eveniment onclick asociat cu un DIV, este creat si afisat un tabel HTML cu Numele si Numerele din acel DIV.
- Ca sa fie preluat sirul, creat si afisat tabelul HTML, este definita o alta functie care foloseste obiectul cu array-urile returnate de metoda splitNameNumber() a clasei "splitStr".
// Sirul-1 cu Nume si Numar separate prin punct '.', si sub-sirurile separate prin virgula ','
<div id="exstr1" style="margin:0 0 1em 3em;color:blue;">Curs JavaScript-jQuery.2013, CoursesWeb.net.2011, MarPlo.net.2009</div>
// Sirul-2 cu Nume si Numar separate prin spatiu, si sub-sirurile separate prin virgula ','
<div id="exstr2" style="margin:0 0 1em 3em;color:#00cb01;">Code Snippets 12, Cod JavaScript 2011, MarPlo.net Courses 2009</div>
// Sirul-3 cu Nume si Numar, si sub-sirurile separate prin spatiu
<div id="exstr3" style="margin:0 0 1em 3em;color:blue;">Tutoriale PHP_MySQL 23 Lectii Ajax 9 Web Development 2013</div>
<button id="exbtn1">Sirul-1</button> - <button id="exbtn2">Sirul-2</button> - <button id="exbtn3">Sirul-3</button>
<div id="tbstr">Aici e afisat tabelul cu Nume si Numar din siruri.</div>

<script type="text/javascript">
// AICI se adauga clasa splitStr


// primeste ID-ul  elementului HTML cu sirul, si caracterele ce imart Nume-Numar si sub-siruri
// creaza si afiseaza un tabel HTML
function reTable(idstr, dlm1, dlm2) {
  // preia sirul
  var str = document.getElementById(idstr).innerHTML;

  // creaza un obiect cu clasa splitStr si foloseste metoda splitNameNumber()
  var obSplitStr = new splitStr();
  var split_str = obSplitStr.splitNameNumber(str, dlm1, dlm2);

  var nrcol = split_str['name'].length;
  var htmltb = '<table cellpadding="2" cellspacing="0" border="1" style="margin:1em auto;border-color:#0001da;"><caption><b>'+idstr+'</b></caption><tr><th>Nume</th><th>Numar</th></tr>';

  // adauga datele din array-urile din split_str in tabelul HTML
  for(var i=0; i<nrcol; i++) {
    htmltb += '<tr><td>'+ split_str['name'][i] +'</td><td>'+ split_str['num'][i] +'</td></tr>';
  }

  // adauga tabelul HTML in elementul cu id="tbstr"
  document.getElementById('tbstr').innerHTML = htmltb +'</table>';
}

// inregistreaza eveniment onclick la cele 3 butoane
document.getElementById('exbtn1').onclick = function() { reTable('exstr1', '.', ','); }
document.getElementById('exbtn2').onclick = function() { reTable('exstr2', ' ', ','); }
document.getElementById('exbtn3').onclick = function() { reTable('exstr3', ' ', ' '); }
</script>
Ca sa vedeti rezultatul, clic pe butoanele de mai jos.
// Sirul-1 cu Nume si Numar separate prin punct '.', si sub-sirurile separate prin virgula ','
Curs JavaScript-jQuery.2013, CoursesWeb.net.2011, MarPlo.net.2009
// Sirul-2 cu Nume si Numar separate prin spatiu, si sub-sirurile separate prin virgula ','
Code Snippets 12, Cod JavaScript 2011, MarPlo.net Courses 2009
// Sirul-3 cu Nume si Numar, si sub-sirurile separate prin spatiu
Tutoriale PHP_MySQL 23 Lectii Ajax 9 Web Development 2013
- -
Aici e afisat tabelul cu Nume si Numar din siruri.

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Ce tip de <input> creaza un camp de text care trebuie sa contina doar numere?
type="text" type="number" type="date"
<input type="number" name="points" min="5" max="80" />
Ce proprietate CSS permite modificarea transparentei unui element?
font-style opacity color
#id {
  filter:alpha(opacity=40);    /* for IE */
  opacity:0.4;
}
Clic pe functia care formateaza un numar la o anumita lungime de caractere.
toPrecision() exp() toFixed()
var num = 12.84567;
alert( num.toPrecision(3) );       // 12.8
Ce functie aranjeaza aleator elementele dintr-un array?
natsort() shuffle() sort()
$lang =[10=>"PHP", 20=>"JavaScript", "site"=>"coursesweb.net");
shuffle($lang);
var_export($lang);     // array (0=>"coursesweb.net", 1=>"PHP", 2=>"JavaScript")
Indicati Superlativul cuvantului "good" (bun).
better best goodest
She is the best in our class.
- Ea este cea mai buna din clasa noastra.
Care este Superlativul cuvantului "bueno" (bun)?
el mejor más bueno muy bueno
Él es el mejor en nuestra clase.
- El este cel mai bun din clasa noastra.
Impartire Sir Alfanumeric in Array

Last accessed pages

  1. Creare tabel in baza de date MySQL si Adaugare date (1258)
  2. Proverbe, expresii si zicatori (23622)
  3. Recapitulare generala la verbe (1134)
  4. Constante si tipuri de variabile (5654)
  5. Indicativ prezent (1520)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (264)
  2. Exercitii engleza - English Tests and exercises - Grammar (152)
  3. Cursuri limba engleza gratuite si lectii online (122)
  4. Gramatica limbii engleze - Prezentare Generala (118)
  5. Prezentul simplu - Exercitii si teste incepatori (111)