JavaScript Add/Update Query String
Function and test suite for adding or updating a query string parameter.
by dominic_p
HTML
Run this code and check your console.
JavaScript
/**
* JavaScript Query string replacement function and test suite.
*
* The function is designed to add or update a query string parameter in a given
* URL. If all of the tests pass, the function should be pretty good.
*/
var test_val = 'new',
test_uris = [
[ 'http://example.com/', 'http://example.com/?param=' + test_val ],
[ 'http://example.com/?', 'http://example.com/?param=' + test_val ],
[ 'http://example.com/?param', 'http://example.com/?param=' + test_val ],
[ 'http://example.com/?param=val', 'http://example.com/?param=' + test_val ],
[ 'http://example.com/?param=val¶m2', 'http://example.com/?param=' + test_val + '¶m2' ],
[ 'http://example.com/?param=¶m2', 'http://example.com/?param=' + test_val + '¶m2' ],
[ 'http://example.com/?param=&param2', 'http://example.com/?param=' + test_val + '¶m2' ],
[ 'http://example.com/?param=val¶m2=val', 'http://example.com/?param=' + test_val + '¶m2=val' ],
[ 'http://example.com/?param2=val¶m[]=val', 'http://example.com/?param2=val¶m[]=' + test_val ],
[ 'http://example.com/?param[test]=val¶m2=val', 'http://example.com/?param[test]=' + test_val + '¶m2=val' ],
[ 'http://example.com/?param[test]=val¶m2[]=val', 'http://example.com/?param[test]=' + test_val + '¶m2[]=val' ],
[ 'http://example.com/?param[]=val¶m[]=another¶m2=val', 'http://example.com/?param[]=' + test_val + '¶m[]=' + test_val + '¶m2=val' ],
[ 'http://example.com/?param=val#', 'http://example.com/?param=' + test_val + '#' ],
[ 'http://example.com/?param=val¶m2=val#param=val', 'http://example.com/?param=' + test_val + '¶m2=val#param=val' ],
[ 'http://example.com/?param=val¶m2=val#param=val#test', 'http://example.com/?param=' + test_val + '¶m2=val#param=val#test' ],
[ 'http://example.com/?param2=val¶m=val#param=val#test?param=val', 'http://example.com/?param2=val¶m=' + test_val + '#param=val#test?param=val' ],
[...