Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Javascript字符串中提取并保留域的URL_Javascript_Regex - Fatal编程技术网

从Javascript字符串中提取并保留域的URL

从Javascript字符串中提取并保留域的URL,javascript,regex,Javascript,Regex,我需要从HTML代码的JS字符串中提取属于域的URL,并将它们存储为变量数组。我知道我在找一个正则表达式(https?:\/\/(.+?\)?twitter\.com(\/[a-Za-z0-9\-\.\uz:\/\.\[\]@!$&'\(\)*+,;\=]*)。我的问题是,我不知道是什么命令在JS中找到了它,尽管我已经找到了它 我的项目合作伙伴正在填充一个GoogleSheets表,我将其存储为本地的HTML文件,我在一个单独的HTML页面上获取该表并将其推送到控制台,如下所示。我的最终目标是让

我需要从HTML代码的JS字符串中提取属于域的URL,并将它们存储为变量数组。我知道我在找一个正则表达式
(https?:\/\/(.+?\)?twitter\.com(\/[a-Za-z0-9\-\.\uz:\/\.\[\]@!$&'\(\)*+,;\=]*)
。我的问题是,我不知道是什么命令在JS中找到了它,尽管我已经找到了它

我的项目合作伙伴正在填充一个GoogleSheets表,我将其存储为本地的HTML文件,我在一个单独的HTML页面上获取该表并将其推送到控制台,如下所示。我的最终目标是让他在JS数组中的多个列中放置twitter配置文件的链接,以供以后使用

fetch('Directory.html').then(function (response) {
    return response.text();
}).then(function (html) {
    console.log(html);
}).catch(function (err) {
    console.warn('Ooga booga.', err);
});
任何见解都值得赞赏。我爱这个社区,祝福你们所有人

编辑

在下面的注释之后,我实现了这段代码,但是Chromium控制台打印整个文档,就好像它没有过滤任何内容一样。为什么会这样? 我最初在没有使用forwardslash/之前和之后的regex内容的情况下进行了尝试,但Chrome控制台抱怨出现了意外的:(冒号)标记。为什么会这样

fetch('Directory.html').then(function (response) {
    // The API call was successful!
    return response.text();
}).then(function (html) {
    // This is the HTML from our response as a text string
    console.log(html);
}).catch(function (err) {
    // There was an error
//  console.warn('Something went wrong.', err);
});
const paragraph = html;
const regex = /(https?:\/\/(.+?\.)?twitter\.com(\/[A-Za-z0-9\-\._~:\/\?#\[\]@!$&'\(\)\*\+,;\=]*)?)/;
const found = paragraph.match(regex);

console.log(found);

在这里展示我自己的作品。非常感谢@Booboo

fetch('Directory.html').then(function (response) {

    return response.text();
}).then(function (html) {

const paragraph = html;
const regex = /(https?:\/\/(.+?\.)?twitter\.com(\/[A-Za-z0-9\-\._~:\/\?#\[\]@!$&'\(\)\*\+,;\=]*)?)/g;
const found = paragraph.match(regex);
console.log(found);
});
我使用了一个名为
的库来获取外部HTML文档

const paragration=html
可能是多余的一行

const regex=
标识”https://twitter.com/“正如我想要的文本,使用
g
标志获取字符串中的所有实例,而不是一个实例

const found=
line在字符串中查找匹配项


console.log
将结果打印到浏览器控制台。

您可以启动。但是:使用regex解析HTML或JavaScript是非常有问题的,并且通常不赞成。例如,如何确保匹配的字符串不在注释或带引号的字符串中?您需要比JavaScript正则表达式提供的功能更强大的东西来完成此任务。@Booboo感谢您的支持。我相信我会从这里处理好的。在这种特定情况下,不会出现该问题,但为了将来参考,什么更适合?也许完全是另一种语言?有一些想法。