JSFiddle - React, Tailwind, and code Playground
HTML
youtube url:<br />
<textarea id="youtube_url" type="text" style="width:400px;">https://www.youtube.com/watch?v=31JAXPRBawg
</textarea>
parsing result:<div id="youtube_result"></div>
<hr>
query string:<br />
<textarea id="query_string" type="text" style="width:400px;">a=b&c=d&e=&=f&=&g
</textarea>
parsing result:<div id="query_result"></div>
JavaScript
function parse_youtube_id(yturl) {
return (regexRes = yturl.match("youtube.com/.*[\\?&]v=([^&#]*)")
|| yturl.match("youtu.be/([^&#?]*)")) && regexRes[1];
}
function parse_query_string(query){
//query = query || location.search.substring(1);
var args = {}, match = [], reg = /([^\?&=#]+)=([^\?&=#]*)/g;
while(match = reg.exec(query)){
args[decodeURIComponent(match[1])] = decodeURIComponent(match[2]);
}
return args;
}
$('#youtube_url').keyup(function(e){
$('#youtube_result').text(parse_youtube_id($(this).val()));
});
$('#query_string').keyup(function(e){
$('#query_result').text(JSON.stringify(parse_query_string($(this).val())));
});
$('#youtube_url').keyup();
$('#query_string').keyup();