I have some variable
var jdbcurl="jdbc:oracle:thin:%2F%2Finnova:1521%3BServiceName%3Dorcl%3BMaxPooledStatements%3D20%3BCatalogOptions%3D0%3BBatchPerformanceWorkaround%3Dtrue"
alert(jdbcurl.match(/:[\d]+/)); //gives me :1521
How can I get jdbc:oracle:thin
, innova
, 1521
& orcl
out of jdbcurl
var?
Update
You can experiment here (if needed)
I have some variable
var jdbcurl="jdbc:oracle:thin:%2F%2Finnova:1521%3BServiceName%3Dorcl%3BMaxPooledStatements%3D20%3BCatalogOptions%3D0%3BBatchPerformanceWorkaround%3Dtrue"
alert(jdbcurl.match(/:[\d]+/)); //gives me :1521
How can I get jdbc:oracle:thin
, innova
, 1521
& orcl
out of jdbcurl
var?
Update
You can experiment here (if needed)
Share Improve this question edited Apr 2, 2013 at 3:34 omnigrok 535 bronze badges asked Dec 16, 2011 at 7:47 AabinGunzAabinGunz 12.3k54 gold badges148 silver badges220 bronze badges4 Answers
Reset to default 10var jdbcurl="jdbc:oracle:thin:%2F%2Finnova:1521%3BServiceName%3Dorcl%3BMaxPooledStatements%3D20%3BCatalogOptions%3D0%3BBatchPerformanceWorkaround%3Dtrue"
var myregex = /([a-z:]+):%2F%2F([a-z]+):(\d+)%3BServiceName%3D([a-z]+)%3BMaxPooledStatements%3D20%3BCatalogOptions%3D0%3BBatchPerformanceWorkaround%3Dtrue/
var matches = myregex.exec(jdbcurl);
// jdbc:oracle:thin is in matches[1], innova is in matches[2], 1521 is in matches[3], and orcl is in matches[4]
you could also try this for better url readability during regexp maintenance if you have to parse several urls:
var jdburl = unescape("jdbc:oracle:thin:%2F%2Finnova:1521%3BServiceName%3Dorcl%3BMaxPooledStatements%3D20%3BCatalogOptions%3D0%3BBatchPerformanceWorkaround%3Dtrue");
var myRegExp = new Regexp('([a-z:]+)://(\\w+):(\\d+);ServiceName=(\\w+);');
var matches = myRegExp.exec(jdburl);
I'd say jdbcurl.split(/(%..)/)
would be a start - and then you could check the elements on whether to keep them or split them even further.
Use decodeURIComponent() first, then split on semicolons. Don't make it hard on yourself!