Page 1 sur 1

@ismember en javascript

MessagePublié: 04 Oct 2013 à 09:21
par gouff
Bonjour,

Pour un formulaire web, je cherche à faire en javascript, l'équivalent de la formule :

@IsMember(@UserName;ExpertList))

ExpertList étant un champ de mon formulaire.

Des idées?

D'avance merci.
Damien

Re: @ismember en javascript

MessagePublié: 04 Oct 2013 à 09:25
par Michael DELIQUE
salut

j'ai ça en stock...


Code : Tout sélectionner
function isMember(array, value, nbCase, nbTrim){

    if (array === undefined || array === null || isArray(array) === false || array.length === 0) {
        return false;
    }
    if (value === undefined || value === null || value === "") {
        return false;
    }
    if (nbCase === undefined || nbCase === null || nbCase === "" || isNaN(nbCase)) {
        nbCase = false;
    }
    if (nbTrim === undefined || nbTrim === null || nbTrim === "" || isNaN(nbTrim)) {
        nbTrim = false;
    }
   
    var i = 0, i2 = 0;
   
    for (i = 0, i2 = array.length; i < i2; i++) {
        if (nbCase === false) {
            if (nbTrim === true) {
                if (trim(array[i].toUpperCase()) === trim(value.toUpperCase())) {
                    return true;
                }
            }
            else {
                if (array[i].toUpperCase() === value.toUpperCase()) {
                    return true;
                }
            }
        }
        else {
            if (nbTrim === true) {
                if (trim(array[i]) === trim(value)) {
                    return true;
                }
            }
            else {
                if (array[i] === value) {
                    return true;
                }
            }
        }
    }
    return false;
}

function isMemberIndex(array, value, nbCase, nbTrim){

    if (array === undefined || array === null || isArray(array) === false || array.length === 0) {
        return -1;
    }
    if (value === undefined || value === null || value === "") {
        return -1;
    }
    if (nbCase === undefined || nbCase === null || nbCase === "" || isNaN(nbCase)) {
        nbCase = -1;
    }
    if (nbTrim === undefined || nbTrim === null || nbTrim === "" || isNaN(nbTrim)) {
        nbTrim = -1;
    }
    var i = 0, i2 = 0;
    for (i = 0, i2 = array.length; i < i2; i++) {
        if (nbCase === false) {
            if (nbTrim === true) {
                if (trim(array[i].toUpperCase()) === trim(value.toUpperCase())) {
                    return i;
                }
            }
            else {
                if (array[i].toUpperCase() === value.toUpperCase()) {
                    return i;
                }
            }
        }
        else {
            if (nbTrim === true) {
                if (trim(array[i]) === trim(value)) {
                    return i;
                }
            }
            else {
                if (array[i] === value) {
                    return i;
                }
            }
        }
    }
    return -1;
}


function isMemberPseudo(array, value, nbCase, nbTrim, sep, rigthLeft, nbIndex){

    if (array === undefined || array === null || isArray(array) === false || array.length === 0) {
        return false;
    }
    if (value === undefined || value === null || value === "") {
        return false;
    }
    if (nbCase === undefined || nbCase === null || nbCase === "" || isNaN(nbCase) || nbCase !== true) {
        nbCase = false;
    }
    if (nbTrim === undefined || nbTrim === null || nbTrim === "" || isNaN(nbTrim) || nbTrim !== true) {
        nbTrim = false;
    }
    var separator = "", valeur1 = "", valeur2 = "", i = 0, i2 = 0;
    if (sep === undefined || sep === null || sep === "") {
        separator = "|";
    }
    else {
        separator = sep;
    }
    if (nbIndex === undefined || nbIndex === null || nbIndex === "" || isNaN(nbIndex) || nbIndex !== true) {
        nbIndex = false;
    }
    if (rigthLeft === undefined || rigthLeft === null || rigthLeft === "" || (rigthLeft.toUpperCase().charAt(0) !== "L" && rigthLeft.toUpperCase().charAt(0) !== "D")) {
        rigthLeft = "R";
    }
    else {
        rigthLeft = rigthLeft.toUpperCase().charAt(0);
    }
   
    //si nbIndex = true renvois la position dans le tableau, sinon renvois true ou false
    // rightleft indique si le pseuod est a gauche ou a droite du séprateur
   
   
    for (i = 0, i2 = array.length; i < i2; i++) {
        if (array[i].lastIndexOf(separator) === -1) {
            valeur1 = array[i];
        }
        else {
            if (rigthLeft.toUpperCase() === "R") {
                valeur1 = rightString(array[i], separator);
            }
            else {
                valeur1 = leftString(array[i], separator);
            }
        }
        if (value.lastIndexOf(separator) === -1) {
            valeur2 = value;
        }
        else {
            if (rigthLeft.toUpperCase() === "R") {
                valeur2 = rightString(value, separator);
            }
            else {
                valeur2 = leftString(value, separator);
            }
        }
        if (nbCase === false) {
            valeur1 = valeur1.toUpperCase();
            valeur2 = valeur2.toUpperCase();
        }
        if (nbTrim === true) {
            valeur1 = trim(valeur1);
            valeur2 = trim(valeur2);
        }
        if (valeur1 === valeur2) {
            if (nbIndex === true) {
                return i;
            }
            else {
                return true;
            }
        }
    }
    return false;
}


function isMemberv2(array, value, nbCase, nbTrim, nbIndex){

    if (array === undefined || array === null || isArray(array) === false || array.length === 0) {
        return false;
    }
    if (value === undefined || value === null || value === "") {
        return false;
    }
    if (nbCase === undefined || nbCase === null || nbCase === "" || isNaN(nbCase) || nbCase !== true) {
        nbCase = false;
    }
    if (nbTrim === undefined || nbTrim === null || nbTrim === "" || isNaN(nbTrim) || nbTrim !== true) {
        nbTrim = false;
    }
    if (nbIndex === undefined || nbIndex === null || nbIndex === "" || isNaN(nbIndex) || nbIndex !== true) {
        nbIndex = false;
    }
   
    //si nbIndex = true renvois la position dans le tableau, sinon renvois true ou false
    var i = 0, i2 = 0;
    for (i = 0, i2 = array.length; i < i2; i++) {
        if (nbCase === false) {
            if (nbTrim === true) {
                if (trim(array[i].toUpperCase()) === trim(value.toUpperCase())) {
                    if (nbIndex === true) {
                        return i;
                    }
                    else {
                        return true;
                    }
                }
            }
            else {
                if (array[i].toUpperCase() === value.toUpperCase()) {
                    if (nbIndex === true) {
                        return i;
                    }
                    else {
                        return true;
                    }
                }
            }
        }
        else {
            if (nbTrim === true) {
                if (trim(array[i]) === trim(value)) {
                    if (nbIndex === true) {
                        return i;
                    }
                    else {
                        return true;
                    }
                }
            }
            else {
                if (array[i] === value) {
                    if (nbIndex === true) {
                        return i;
                    }
                    else {
                        return true;
                    }
                }
            }
        }
    }
    return false;
}

Re: @ismember en javascript

MessagePublié: 04 Oct 2013 à 09:58
par gouff
Super Michael!!

Je teste ça. Un grand merci!