简单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"
- 正确的Autoprefix插件为我的less中间件节点expressjs
- Node.js NOT-XOR优化
- 快速file upload。 处理可怕的parsing错误(服务器端)
- Node.js中的Spoof Origin头文件
- 对整数不产生结果的正则expression式
- 页面呈现数据后res.redirect不工作
- 如何将基于Angular CLI的ng2 / 4应用程序烧烤到Node / Express中,并具有单一回声系统来开发/运行/debugging服务器/客户端应用程序?
- 如何通过Express中的中间件链来识别请求(通过ID)。
- 我应该用什么来validation用户login与nodejs