Tho*_*ggi 12 javascript regex url node.js
我有一点正则表达式的麻烦.
我想在这个网址中找到路径videoplay.
http://video.google.co.uk:80/videoplay?docid=-7246927612831078230&hl=en#hello
Run Code Online (Sandbox Code Playgroud)
如果我使用这个正则表达式/.+也匹配/video.
我需要某种反/负匹配不包括在内 //
Vla*_*sla 27
如果您的JavaScript网络应用程序需要这个:我在这个主题上找到的最佳答案就在这里.代码的基本(也是原始)版本如下所示:
var parser = document.createElement('a');
parser.href = "http://example.com:3000/pathname/?search=test#hash";
parser.protocol; // => "http:"
parser.hostname; // => "example.com"
parser.port; // => "3000"
parser.pathname; // => "/pathname/"
parser.search; // => "?search=test"
parser.hash; // => "#hash"
parser.host; // => "example.com:3000"
Run Code Online (Sandbox Code Playgroud)
谢谢John Long,你白天做的!
小智 9
(http[s]?:\/\/)?([^\/\s]+\/)(.*)第3组
演示:http://regex101.com/r/vK4rV7/1
此表达式后面的所有内容videoplay,即url路径.
/\/(videoplay.+)/
Run Code Online (Sandbox Code Playgroud)
此表达式获取端口后的所有内容.也包括路径.
/\:\d./(.+)/
Run Code Online (Sandbox Code Playgroud)
但是,如果使用Node.js我推荐本机url模块.
var url = require('url')
var youtubeUrl = "http://video.google.co.uk:80/videoplay?docid=-7246927612831078230&hl=en#hello"
url.parse(youtubeUrl)
Run Code Online (Sandbox Code Playgroud)
所有正则表达式都适合你.
{
protocol: 'http:',
slashes: true,
auth: null,
host: 'video.google.co.uk:80',
port: '80',
hostname: 'video.google.co.uk',
hash: '#hello',
search: '?docid=-7246927612831078230&hl=en',
query: 'docid=-7246927612831078230&hl=en',
pathname: '/videoplay',
path: '/videoplay?docid=-7246927612831078230&hl=en',
href: 'http://video.google.co.uk:80/videoplay?docid=-7246927612831078230&hl=en#hello'
}
Run Code Online (Sandbox Code Playgroud)
function getPath(url, defaults){
var reUrlPath = /(?:\w+:)?\/\/[^\/]+([^?#]+)/;
var urlParts = url.match(reUrlPath) || [url, defaults];
return urlParts.pop();
}
alert( getPath('http://stackoverflow.com/q/123/regex-url', 'unknown') );
alert( getPath('https://stackoverflow.com/q/123/regex-url', 'unknown') );
alert( getPath('//stackoverflow.com/q/123/regex-url', 'unknown') );
alert( getPath('http://stackoverflow.com/q/123/regex-url?foo', 'unknown') );
alert( getPath('http://stackoverflow.com/q/123/regex-url#foo', 'unknown') );
alert( getPath('http://stackoverflow.com/q/123/regex-url/', 'unknown') );
alert( getPath('http://stackoverflow.com/q/123/regex-url/?foo', 'unknown') );
alert( getPath('http://stackoverflow.com/q/123/regex-url/#foo', 'unknown') );
alert( getPath('http://stackoverflow.com/', 'unknown') );Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
60683 次 |
| 最近记录: |