regexp(?) 用于从另一个 URL 中提取 URL

regexp(?) for Extract a URL from another URL

本文关键字:URL 另一个 提取 用于 regexp      更新时间:2023-09-26

我需要检查URL中是否有URL,如果有,请提取它(内部URL(。

所以,我需要检查这是否是 URL 中的 URL

http://www.outerURL.com/outerParameter1/x?u=http://innerURL.com/innerParameter1&outerParameter2/

和提取

http://innerURL.com/innerParameter1

没有jquery。这是针对 clien-side javascript。

并希望使其适合此模板

var link;
link = document.body.getElementsByTagName("a")
for (var i = 0; i < link.length; i++) {
    if (
            // URL checking here
        ){
        //replacing here
        link[i].href = link[i].href.replace(/*  ??? */)
        }
    }

不确定这是否会单独在正则表达式中完成,我应该怎么做?

正则表达式,假设语法相当静态:

var inner = link[i].href.indexOf('http://',1);
inner = inner>-1 ? link[i].href.substr(inner,link[i].href.indexOf('&',inner)-inner) : false;

如果未找到内部 URL,则inner将为 false,如果找不到内部 URL 字符串,则为 false

以下行中的某些内容:

var links = document.body.getElementsByTagName("a");
for (var i = 0; i < links.length; i++) {
    var link = link[i].href,
        m = s.match(/.(http[^&]+)/); //link.match(/u=/u=(http:[^&]+)/);
    if (m){
        link.href = m[1];
    }
}

您可以使用:

link[i].href = link[i].href.replace(/^.*?[?&]u=(http:.+?)(?:&.*|'/?)$/i, '$1');

试试这个

/^[A-Z].+'?[A-Z]=(.*)&/gim

http://regex101.com/r/dF3rN5

爪哇语

url = 'http://www.outerURL.com/outerParameter1/x?u=http://innerURL.com/innerParameter1&outerParameter2/';
replace = url.replace(/^[A-Z].+'?[A-Z]=(.*)&/gim, '$1');
// returns 'http://innerURL.com/innerParameter1outerParameter2/'
相关文章: