Untitled

 avatar
unknown
plain_text
4 years ago
8.8 kB
5
Indexable
#include <regex>
#include <iostream>

using namespace std;

bool ValidirajEmail1(string napomena)
{
    return regex_match(napomena, regex("[\\d]{1}[\\_][\\w]{3,}[\\.\\_]?[\\w]{3,}[@](karate|edu.karate)\\.(ba|com|org)"));
}

bool ValidirajBrojTelefona(string napomena)
{
       // /*
   //broj telefona mora biti u formatu
   //- znak +
   //- pozivni broj drzave (2 ili 3 cifre)
   //- pozivni broj operatera (2 cifre) npr. 063, 061, 065 pri cemu je broj 0 opcionalan
   //- prvi dio broja (2 ili 3 cifre)
   //- razmak ili crtica, oboje opcionalno tj. broj telefona ne mora sadrzavati niti jedno niti drugo
   // - drugi dio broja (2 ili 3 cifre)
   //ukoliko broj telefona nije u validnom formatu, njegova vrijednost se postavlja na NOT VALID
   //*/

    return regex_match(napomena, regex("[+][\\d]{2,3}0?[\\d]{2}[\\d]{2,3}[\\s_]?[\\d]{2,3}"));
}

bool ValidirajLozinku(string lozinka)
{
    // /*
    // za autentifikaciju svaki korisnik mora posjedovati lozinku koja sadrzi:
    // - najmanje 7 znakova
    // - velika i mala slova
    // - najmanje jedan broj
    //- najmanje jedan specijalni znak
    // za provjeru validnosti lozinke koristiti globalnu funkciju
    //ValidirajLozinku, a unutar nje regex metode.
    // validacija lozinke se vrsi unutar konstruktora klase Korisnik, a u
    //slucaju da nije validna
    // postaviti je na podrazumijevanu vrijednost: <VRIJEDNOST_NIJE_VALIDNA>
    // */

    return regex_search(lozinka, regex("(?=.{7,})(?=.*[a-z]{1,})(?=.*[A-Z]{1,})(?=.*[\\d]{1,})(?=.*[\\W]{1,})"));
  //return regex_search(text,    regex("(?=.{7,})(?=.*[A-Z]{1,})(?=.*[a-z]{1,})(?=.*\\d{1,})(?=.*\\W{1,})"));
}

bool ValidirajLozinku2(string lozinka)
{
    // /*
   //za autentifikaciju svaki korisnik mora posjedovati lozinku koja sadrzi 6 ili 7 znakova postujuci sljedeca pravila:
   //-   pocinje sa znak * (zvjezdica) ili _ (donja crtica), nakon cega slijedi
   //-   broj, nakon cega slijedi
   //-   malo slovo, nakon cega slijedi
   //-   razmak koji NIJE OBAVEZAN, nakon cega slijedi
   //-   veliko slovo, nakon cega slijedi
   //-   broj, nakon cega slijedi
   //-   malo slovo.
   //za provjeru validnosti lozinke koristiti globalnu funkciju ValidirajLozinku, a unutar nje regex metode.
   //validacija lozinke se vrsi unutar konstruktora klase Korisnik, a u slucaju da nije validna
   //postaviti je na podrazumijevanu vrijednost: <VRIJEDNOST_NIJE_VALIDNA>
   //*/

    return regex_match(lozinka, regex("[*][\\d]{1}[a-z]{1}[\\s]?[A-Z]{1}[\\d]{1}[a-z]{1}"));
}

bool ValidirajEmail2(string email)
{

    // /*
 // email adresa mora biti u formatu text.text (sa ili bez tacke),
 // dok domena moze biti fit.ba ili edu.fit.ba
 // nakon institucije (fit ili edu.fit), osim drzavne (.ba), dozvoljene su domene .com i .org.
 // za provjeru validnosti email adrese koristiti globalnu funkciju ValidirajEmail, a unutar nje regex metode.
 // validacija email adrese ce se vrsiti unutar konstruktora klase Kandidat, a u slucaju da nije validna
 // postaviti je na defaultnu adresu: notSet@edu.fit.ba
 // */

    return regex_match(email, regex("\\w{3,}\.?\\w{3,}@(edu.fit|fit)\.(ba|com|org)"));
}

const char* crt = "\n-------------\n";

void main()
{

  
    /*
  email adresa treba biti u sljedecem formatu 3_ime.prezime@karate.ba tj. zadovoljavati sljedeca pravila:
  - poceti sa jednim brojem nakon cega slijedi donja crtica
  - u imenu posjedovati najmanje 3 karaktera
  - izmedju imena i prezimena moze biti tacka ili donja crtica ili nista od navedenog
  - u prezimenu posjedovati najmanje 3 karaktera
  - znak @
  - domenu karate.ba ili edu.karate.ba. Pored drzavne(.ba), dozvoljene su oznake .com i .org.
  za provjeru validnosti email adrese koristiti globalnu funkciju ValidirajEmail, a unutar nje regex metode.
  validacija email adrese ce se vrsiti unutar konstruktora klase KaratePolaznik, a u slucaju da nije validna
  postaviti je na defaultnu adresu: notSet@edu.karate.ba
  */

    if (ValidirajEmail1("2_ime.prezime@edu.karate.ba"))
        cout << "Email validan" << crt;
    if (ValidirajEmail1("3_ime_prezime@karate.ba"))
        cout << "Email validan" << crt;
    if (ValidirajEmail1("4_imeprezime@karate.com"))
        cout << "Email validan" << crt;
    if (ValidirajEmail1("8_imeprezime@karate.org"))
        cout << "Email validan" << crt;
    if (!ValidirajEmail1("2ime.prezime@edu.karate.org"))
        cout << "Email NIJE validan" << crt;
    if (!ValidirajEmail1("5_ime prezime@edu.karate.org"))
        cout << "Email NIJE validan" << crt;

   // /*
   //broj telefona mora biti u formatu
   //- znak +
   //- pozivni broj drzave (2 ili 3 cifre)
   //- pozivni broj operatera (2 cifre) npr. 063, 061, 065 pri cemu je broj 0 opcionalan
   //- prvi dio broja (2 ili 3 cifre)
   //- razmak ili crtica, oboje opcionalno tj. broj telefona ne mora sadrzavati niti jedno niti drugo
   // - drugi dio broja (2 ili 3 cifre)
   //ukoliko broj telefona nije u validnom formatu, njegova vrijednost se postavlja na NOT VALID
   //*/

    if (ValidirajBrojTelefona("+38761222333"))
        cout << "Broj telefona validan" << crt;
    if (ValidirajBrojTelefona("+38761222-333"))
        cout << "Broj telefona validan" << crt;
    if (ValidirajBrojTelefona("+38761222 333"))
        cout << "Broj telefona validan" << crt;
    if (ValidirajBrojTelefona("+387061222 333"))
        cout << "Broj telefona validan" << crt;
    if (!ValidirajBrojTelefona("+38761 222 333"))
        cout << "Broj NIJE telefona validan" << crt;
    if (!ValidirajBrojTelefona("+387 61222 333"))
        cout << "Broj NIJE telefona validan" << crt;
   

    // /*
  // za autentifikaciju svaki korisnik mora posjedovati lozinku koja sadrzi:
  // - najmanje 7 znakova
  // - velika i mala slova
  // - najmanje jedan broj
  //- najmanje jedan specijalni znak
  // za provjeru validnosti lozinke koristiti globalnu funkciju
  //ValidirajLozinku, a unutar nje regex metode.
  // validacija lozinke se vrsi unutar konstruktora klase Korisnik, a u
  //slucaju da nije validna
  // postaviti je na podrazumijevanu vrijednost: <VRIJEDNOST_NIJE_VALIDNA>
  // */

    if (ValidirajLozinku("john4Do*e"))
        cout << "OK" << crt;
    if (!ValidirajLozinku("john4Doe"))
        cout << "Specijalni znak?" << crt;
    if (!ValidirajLozinku("jo*4Da"))
        cout << "7 znakova?" << crt;
    if (!ValidirajLozinku("4jo-hnoe"))
        cout << "Veliko slovo?" << crt;
    if (ValidirajLozinku("@john2Doe"))
        cout << "OK" << crt;

   // /*
   //za autentifikaciju svaki korisnik mora posjedovati lozinku koja sadrzi 6 ili 7 znakova postujuci sljedeca pravila:
   //-   pocinje sa znak * (zvjezdica) ili _ (donja crtica), nakon cega slijedi
   //-   broj, nakon cega slijedi
   //-   malo slovo, nakon cega slijedi
   //-   razmak koji NIJE OBAVEZAN, nakon cega slijedi
   //-   veliko slovo, nakon cega slijedi
   //-   broj, nakon cega slijedi
   //-   malo slovo.
   //za provjeru validnosti lozinke koristiti globalnu funkciju ValidirajLozinku, a unutar nje regex metode.
   //validacija lozinke se vrsi unutar konstruktora klase Korisnik, a u slucaju da nije validna
   //postaviti je na podrazumijevanu vrijednost: <VRIJEDNOST_NIJE_VALIDNA>
   //*/

    if (ValidirajLozinku2("*2gT2x"))
        cout << "Lozinka validna" << endl;
    if (ValidirajLozinku2("*7aT2x"))
        cout << "Lozinka validna" << endl;
    if (ValidirajLozinku2("_6gU9z"))
        cout << "Lozinka validna" << endl;
    if (ValidirajLozinku2("*3aB1y"))
        cout << "Lozinka validna" << endl;
    if (ValidirajLozinku2("*1a T2l"))
        cout << "Lozinka validna" << endl;
    if (!ValidirajLozinku2("-1a T2l"))
        cout << "Lozinka NIJE validna" << endl;

   // /*
   // email adresa mora biti u formatu text.text (sa ili bez tacke),
   // dok domena moze biti fit.ba ili edu.fit.ba
   // nakon institucije (fit ili edu.fit), osim drzavne (.ba), dozvoljene su domene .com i .org.
   // za provjeru validnosti email adrese koristiti globalnu funkciju ValidirajEmail, a unutar nje regex metode.
   // validacija email adrese ce se vrsiti unutar konstruktora klase Kandidat, a u slucaju da nije validna
   // postaviti je na defaultnu adresu: notSet@edu.fit.ba
   // */

    if (ValidirajEmail2("text.text@edu.fit.ba"))
        cout << "Email validan" << crt;
    if (ValidirajEmail2("texttext@edu.fit.ba"))
        cout << "Email validan" << crt;
    if (ValidirajEmail2("texttext@fit.ba"))
        cout << "Email validan" << crt;
    if (ValidirajEmail2("texttext@fit.com"))
        cout << "Email validan" << crt;
    if (ValidirajEmail2("texttext@edu.fit.org"))
        cout << "Email validan" << crt;
  
}
Editor is loading...