最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

JavaScript regex matching - Stack Overflow

programmeradmin3浏览0评论

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 badges
Add a comment  | 

4 Answers 4

Reset to default 10
var 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!

发布评论

评论列表(0)

  1. 暂无评论