working on it ...

Filters

Explore Public Snippets

Sort by

Found 129k snippets

    public by  158  2  5  0

    Validação de CPF/CNPJ em javascript

    Classes em javascript para validação de números de CPFs e CNPJs. Requisitos: browser ou ferramenta deve suportar a ECMAScript® 2015 Language Specification Obs:Em outro snippet há o código HTML para testar estas classes
    /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
     * Arquivo      : cnpj_cpf.js
     * Observações  :
     *   #version;date;description
     *   0.1.0;20/12/2019; versão beta1
     */
    
    /**
     * Class: Cpf
     * version: 0.1.0;18/12/2019
     */
     
    class Cpf {
        /* constructor */
        constructor(p_cpf) {
            
            // validações iniciais
            if ( typeof p_cpf !== 'string' ) {
                throw "Parâmetro p_cpf " + p_cpf + " deve ser do tipo string!";
            }
            
            // retira não numéricos
            p_cpf = p_cpf.replace(/\D/g,'');
                   
            /* attributes */
            this._cpf = p_cpf;   // retira não numéricos
            this._er = /^[0-9]{11}$/;
            this._er_mask = /^[0-9]{3}\.?[0-9]{3}\.?[0-9]{3}\-?[0-9]{2}$/;
            this._status = 0;   // 0-não testado;1-válido;2-inválido
        }
    
    
        /* getters and setters */
        get cpf() {
            return this._cpf;
        }
        
        set cpf(p_cpf) {
            // validações iniciais
            if ( typeof p_cpf !== 'string' ) {
                throw "Parâmetro p_cpf " + p_cpf + " deve ser do tipo string!";
            }
            
            // retira não numéricos
            p_cpf = p_cpf.replace(/\D/g,'');   // retira não numéricos
            
            // atribuição
            this._cpf = p_cpf;
            this._status = 0;
        }
    
        get status() {
            return this._status;
        }
    
        /* others methods */
        validar() {
           this._status = ( this._validarCpf(this._cpf) ? 1 : 2);
           return ( this._status == 1 ) ? true : false;
        }
    
        show_status() {
            let str_out='CPF: ' + this._cpf + ' - status: ' + this._status;
            console.log(str_out);
            return str_out;
        }
    
        /* functions */
            
        //
        // validação de CPF
        //
        _validarCpf(p_cpf) {
    
            //
            // testes iniciais: descarta nulos, não strings e string que não é numérica de 11 dígitos
            //
    
            if ( typeof p_cpf !== 'string' ) { return false; }
    
            if ( ! ( this._er.test(p_cpf)) ) { return false; }
    
            //
            //  regra de validação do CPF
            //
    
            // quebra o CPF em 2 partes
            let cpf9digs=p_cpf.substring(0,9);
            let cpf2digs=p_cpf.substring(9,11);
    
            let soma=0;
            let digv="";
            let digv1=0;
            let digv2=0;
            let p=0;
            let dig=0;
            let mod11soma=0;
    
            // obtenção do primeiro dígito
            for(p=10;p>=2;p--) {
                dig=parseInt(cpf9digs.charAt(10-p));
                soma+=p*dig;
            }
            mod11soma = soma % 11;
            digv1=(mod11soma<2) ? 0 : (11-mod11soma);
    
            // obtenção do segundo dígito
            let cpf10digs= "" + cpf9digs + digv1;
            soma=0;
            digv2=0;
            for(p=11;p>=2;p--) {
                dig=parseInt(cpf10digs.charAt(11-p));
                soma+=p*dig;
            }
            mod11soma = soma % 11;
            digv2 = (mod11soma<2) ? 0 : (11-mod11soma);
    
            // dígito verificador completo
            digv= "" + digv1 + digv2;
    
            return (( digv === cpf2digs ) ? true : false);
        }
    }
    
    /**
    * Class: Cnpj
    * version: 0.1.0;18/12/2019
    */
    class Cnpj {
    
        /* getters and setters */
        constructor(p_cnpj) {
            
            // validações iniciais
            if ( typeof p_cnpj !== 'string' ) {
                throw "Parâmetro p_cnpj " + p_cnpj + " deve ser do tipo string!";
            }
            
            // retira não numéricos
            p_cnpj = p_cnpj.replace(/\D/g,'');
    
            /* attributes */
            this._cnpj = p_cnpj;
            this._er = /^[0-9]{14}$/;
            this._er_mask = /^[0-9]{2}\.?[0-9]{3}\.?[0-9]{3}\/?[0-9]{4}\-?[0-9]{2}$/;
            this._status = 0;   // 0-não testado;1-válido;2-inválido
        }
    
        /* getters and setters */
        get cnpj() {
            return this._cnpj;
        }
    
        set cnpj(p_cnpj) {
            // validações iniciais
            if ( typeof p_cnpj !== 'string' ) {
                throw "Parâmetro p_cnpj " + p_cnpj + " deve ser do tipo string!";
            }
            
            // retira não numéricos
            p_cnpj = p_cnpj.replace(/\D/g,'');
            this._cnpj = p_cnpj;
        }
    
        /* others methods */
        get status() {
            return this._status;
        }
    
        /* others methods */
        validar() {
           this._status = ( this._validarCnpj(this._cnpj) ? 1 : 2);
           return ( this._status == 1 ) ? true : false;
        }
    
        show_status() {
            let str_out='CNPJ: ' + this._cnpj + ' - status: ' + this._status;
            console.log(str_out);
            return str_out;
        }
    
        /* functions */
            
        //
        // validação de CPF
        //
        _validarCnpj(p_cnpj) {
            //
            // testes iniciais: descarta nulos, não strings e string que não é numérica de 11 dígitos
            //
            
            if ( typeof p_cnpj !== "string" ) { return false; }
        
            let ereg = new RegExp('^\\d{14}$');
            if ( ! ( ereg.test(p_cnpj)) ) { return false; }
        
            //
            //  regra de validação do CNPJ
            //
            
            // quebra o CPF em 2 partes
            let cnpj12digs=p_cnpj.substring(0,12);
            let cnpj2digs=p_cnpj.substring(12,14);
            
            let soma=0;
            let digv1=0;
            let digv2=0;
            let dig=0;
            let p=0,i=0;
            let digv="";
            let mod11soma=0;     
        
            //
            // regra de validação do CNPJ
            //
            
            // obtenção do primeiro dígito
            soma=0;
            digv1=0;
            p=2; // peso inicial
            for(i=12;i>=1;i--) {
                dig = parseInt(cnpj12digs.charAt(i-1));
                soma += p * dig;
                p= (p==9) ? 2 : (p+1);
            }
            mod11soma = soma%11;
            digv1= (mod11soma<2) ? 0 : (11-mod11soma);
        
            // obtenção do segundo dígito
            let cnpj13digs="" + cnpj12digs + digv1;
            soma=0;
            digv2=0;
            p=2; // peso inicial
            for(i=13;i>=1;i--) {
                dig=parseInt(cnpj13digs.charAt(i-1));
                soma += p * dig;
                p=(p==9) ? 2 : (p+1);
            }
            mod11soma=soma%11;
            digv2=(mod11soma<2)?0:(11-mod11soma);
            
            // dígito verificador completo
            digv="" + digv1 + digv2;
            
            return (( digv == cnpj2digs ) ? true : false);
        }
    }
    
    																																																

    public by DinhoPutz  189  0  4  0

    Somar valores de um objeto no JavaScript

    Soma os campos de mesmo nome nos itens de um objeto
    var objeto = [
        { valor: 10 }, 
        { valor: 15 }
    ];
    
    objeto;
    
    var somaValores = function (novoObjeto) {
        // Aqui realiza a soma dos valores da propriedade "valor" dentro do objeto
        var total2 = novoObjeto.reduce((total, valor) => total + valor.valor, 0);
        // Resultado da soma 
        console.log( total2 );
    }
    somaValores(objeto);

    public by PBMCube  206  0  4  1

    Game Box Prototype

    command combinations Description: Quickly create operational games using simple box graphics from Phaser3 shapes (v3.13.x). This test game mechanics for enjoyment. Final Artwork added to game mechanisms, prototypes and mechanics as the final pipeline product phase.
    // ============
    //Example 4.1: Prototyping Graphics begins
    // ============
    //create a character avatar using the box prototype method 
    player = box({who: this, whereX: 150, whereY: 100,length:32, width:32, color: 0x0000FF,border: 0xFFFFFF});
    this.physics.add.existing(player);
    player.body.velocity.x = 10; //see update function
    player.body.velocity.y = 50;
    console.log("Stationary Blue character avatar created as 'player' variable.");
    // ------------  
    // OR the direct method using either rectangle or graphics
    //    and set movement velocities. 
    var avatar =  this.add.rectangle(100, 100, 32, 32, 0x0000FF).setStrokeStyle(5, 0x3399CC);
    console.log("Moving Blue character avatar created as 'player' variable.");
    var graphics = this.add.graphics({ fillStyle: { color: 0xFF0000 } });
    graphics.lineStyle(10,0xFF9900,0);
    graphics.strokeRect(100, 100, 32, 32);
    	
    //non-controlled movement (usage AI bot; see Chapter 6)
    graphics.fillRectShape(avatar);
    this.physics.add.existing(avatar);
    avatar.body.velocity.x = 50;
    avatar.body.velocity.y = 10;
    //non-controlled movement (usage AI bot; see Chapter 6)
    this.physics.add.existing(graphics);
    graphics.body.velocity.x = 50;
    graphics.body.velocity.y = 50;
    console.log("Moving Red avatar created as 'avatar' variable.\n Movement velocity set.");
    // ------------
    //create an opponent - direct method 
    var monster = this.add.rectangle(180, 60, 32, 32, 0x00FF00).setStrokeStyle(5, 0xFF9900);
    console.log("Green monster avatar created as 'monster' variable.");
    //Example 4.1: ends
    // ============
    

    public by PBMCube  195  0  4  1

    Scene Preload an Image

    command format: Example:this.load.image("key", "path"); Description:Use this in the scene.preload function. .png are the default images. You can also set the "base URL"
    // ============
    // Example 3.4: Additional Phaser Properties begins
    // ============
    // remote URL to game assets
    // Cross-origin resource sharing (CORS)
    	this.load.setCORS = 'anonymous';
    // Setting base URL path
    	this.load.setBaseURL('http://makingbrowsergames.com/p3devcourse/_p3demos/imgages/');
    // Preload a gfx asset
    	this.load.image("face", "face.png");
    	

    public by PBMCube  202  0  4  1

    Doors as Buttons

    Dungeon doorways should be both clickable and sense collisions.
    //Phaser III - clicking on a doorway  
    // ============
    // Example 4.6:  Doors as Buttons
    // ============
    // Creating door rectangles; review console in this experiment  
    //placed on a wall with 2px extended into the room
    doorN = this.add.rectangle(35,0,60,18,0x000000)  
            .setInteractive()  
            .setOrigin(0);  
    						

    public by PBMCube  231  1  5  1

    Game Config File

    This is a config file example to pass into the Phaser.Game. It is a barebones Phaser3 configuration object
    var config = {
            type: graphics_mode,
            width: game_width,
            height: game_height,
            parent: 'div-tag-name',
            scene: [nameOfScene]
        };											

    public by PBMCube  193  0  4  1

    Global Game Object

    Assigning a global namespace variable with delegation into Phaser.Game
    var game = new Phaser.Game(config);

    public by DinhoPutz  235  1  4  0

    Monitorar alterações em formulário, exibir alteração, filtro por campo.

    Objetivo: 1. Monitorar alterações apenas a parte do formulário contida dentro da DIV "divCheckList". 2. Monitorar alterações apenas os campos que contenham no atributo "for" a palavra (caracteres) "check_". 3. Exibir as alterações em tempo real dentro da div "#parcial".
    var selectElem = document.getElementById('divCheckList') // Seção onde se encontra o form, pode ser o ID da div acima dele ou de alguma div dentro do form.
    selectElem.addEventListener('change', function() {
        $("#parcial").html("");
        $("label").each(function(index, element) {
            var ele = $(element);
            var elementos2 = [];
            algo = ele.attr("for").indexOf("check_"); // aqui filtramos apenas os campos que conteam "check_" no atributo "for", poderia ser ID, Class, placesseholder...
            if (algo > -1) {
                variavel = ("#" + ele.attr("for"));
                elementos2 = [index, ele.html(), ele.attr("for"), $(variavel).val()];
                console.log(elementos2);
                $('#parcial').append("" + elementos2[1] + " - " + elementos2[3] + "\n");
            }                  
            else null;  
        });
    })
    

    public by JKCPR  872  0  5  1

    unit testing - mocking server responses with sinonjs

    {
        setUp: function () {
            this.server = sinon.fakeServer.create();
        },
    
        tearDown: function () {
            this.server.restore();
        },
    
        "test should fetch comments from server" : function () {
            this.server.respondWith("GET", "/some/article/comments.json",
                                    [200, { "Content-Type": "application/json" },
                                     '[{ "id": 12, "comment": "Hey there" }]']);
    
            var callback = sinon.spy();
            myLib.getCommentsFor("/some/article", callback);
            this.server.respond();
    
            sinon.assert.calledWith(callback, [{ id: 12, comment: "Hey there" }]));
        }
    }		

    public by tomsim  1565  1  6  0

    Simple RPC call

    Simple function to call RPC (only 1k uncompressed). Use this instead of JQuery. Alternatively, use zepto.min.js from zeptojs.com if you have 26K to spare.
    /* 
    Addapted from Paolo Manna git pmanna/mongoose_os_playground browser_rpc_service.js
    */
    
    var platform = '';
    var host = '';
    
    var defCallBack = function(response) {
      if ((response) && (response.error)) {
    	  alert(response.message);
      }
    };
    
    // Common call to RPC services on the board
    function callRPCService(cmd, params, callback) {
      if (!callback) {
    	  callback = defCallBack;
      }
      var xhttp = new XMLHttpRequest();
      
      xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
          callback(this.response);
        }
      };
      
      xhttp.open('POST', 'rpc/' + cmd + '?' + new Date().getTime(), true);
      xhttp.responseType = 'json';
      xhttp.send(JSON.stringify(params));
    }
    
    // Discover which platform we're using, to enable/disable features
    function startup() {
      callRPCService('Config.Get',{}, function(response) {
        if (response) {
          platform = response.device.id;
          console.log('Platform is: ' + platform);
    
          var mac_id = (response.device.id.split("_"))[1];
    
          host = mac_id + '.local';
          document.getElementById("hostname").innerHTML = host;
        }
      });
    }
    
    // Reboots the microcontroller
    function rebootDevice() {
      callRPCService('Sys.Reboot',{delay_ms:500});
    }
    
    						
    • Public Snippets
    • Channels Snippets