简单Nodejs正则expression式:从两个string之间提取文本
我试图从以下URL中提取Vine ID:
https://vine.co/v/Mipm1LMKVqJ/embed
我正在使用这个正则expression式:
/v/(.*)/
并在此处进行testing: http : //regexpal.com/
…但它匹配V并closures“/”。 我怎样才能得到“Mipm1LMKVqJ”,什么是在Node中做到这一点最干净的方式?
您只需参考第一个匹配组,以仅打印匹配结果。
var re = new RegExp('/v/(.*)/'); var r = 'https://vine.co/v/Mipm1LMKVqJ/embed'.match(re); if (r) console.log(r[1]); //=> "Mipm1LMKVqJ"
注意:如果url经常改变,我推荐使用*?
以防止你的匹配贪婪。
虽然从以下url,也许考虑分裂。
var r = 'https://vine.co/v/Mipm1LMKVqJ/embed'.split('/')[4] console.log(r); //=> "Mipm1LMKVqJ"
你根本不需要regexp
url模块是你想要的
var url = require("url"); url.parse("https://vine.co/v/Mipm1LMKVqJ/embed");
产量
{ protocol: 'https:', slashes: true, auth: null, host: 'vine.co', port: null, hostname: 'vine.co', hash: null, search: null, query: null, pathname: '/v/Mipm1LMKVqJ/embed', path: '/v/Mipm1LMKVqJ/embed', href: 'https://vine.co/v/Mipm1LMKVqJ/embed' }
如果你想要更多的手持
url.parse("https://vine.co/v/Mipm1LMKVqJ/embed").path.split("/")[2]; // "Mipm1LMKVqJ"
- 表示多个静态路由正则expression式parsing
- 数据传输对象(DTO)是否用Node.js / Express / MongoDB构buildREST API?
- 使用Visual Studio代码debugging节点js
- Expressjs路线与Angular路线问题直接加载url
- 从socket.iocallback中修改会话数据
- 有没有办法在以后使用EJS和nodejs / express来添加CSS / JS
- JavaScript for循环内的asynchronous函数
- Morgan Logger + Express.js:写入文件并在控制台中显示
- YouTube的正则expression式:经testing挑选video和播放列表ID,但Node.js不会