JSFiddle - React, Tailwind, and code Playground

by samizdam

HTML

<textarea name="query">some_key=some_value&another_multi_var[]=A&another_multi_var[]=B</textarea>
<br/>
<input type="button" name="submit" value="parse"/>

<div id="result">
    
</div>

JavaScript

'use strict';
var Query = function(query_string){
    // input: 
    var sourceQueryString = query_string || '';
    // public property 
    this.params = {};
    
    function parseFromString(){
        
    }
    
    this.serializeToString(){
        
    }
}
var QueryParser = function(query){

    var ARG_SEPARATOR = '&';
    var VAL_SEPARATOR = '=';
    var ARRAY_PATTERN = /\[(.*)\]$/;
    
    this.pushParam = function(key, value){
        var params = {};
        // check if param is array (key[]=)
        var multi_key_index = key.match(ARRAY_PATTERN);
        if(multi_key_index.length > 0){
            var array_key = multi_key_index[0];
            if(this.params[array_key]){
                    
            }else{
                
            }
        }else{
            ;
        }
        
        this.params[key] = param;
                
    }
    // hash for count numeric index
    var arrayParamsCounter = {};
    
    var pairs = query.split(ARG_SEPARATOR);
    for(var i = 0; i < pairs.length; i++){
        // pair key => value
        var chanks = pairs[i].split(VAL_SEPARATOR);
        
        this.pushParam(chanks[0], chanks[1]);
    }
    
    this.parse = function(){
        
    }
}



$('[name="submit"]').on('click', function(){
    var query = $('[name="query"]').val();
    var parser = new QueryParser(query);
    var params = parser.parse(query);
    console.log(params);
    
});