Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.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
NodeJS中的Javascript URL正则表达式问题_Javascript_Regex_Node.js - Fatal编程技术网

NodeJS中的Javascript URL正则表达式问题

NodeJS中的Javascript URL正则表达式问题,javascript,regex,node.js,Javascript,Regex,Node.js,所以我需要抓取字符串中的所有URL,并以数组的形式返回它们 以下是我到目前为止的情况: var comment = 'Check out www.google.com and http://bing.com'; var regexp = new RegExp('((ftp|http|https):\/\/)?(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?', 'gi');

所以我需要抓取字符串中的所有URL,并以数组的形式返回它们

以下是我到目前为止的情况:

        var comment = 'Check out www.google.com and http://bing.com';
        var regexp = new RegExp('((ftp|http|https):\/\/)?(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?', 'gi');
        var urls = comment.match(regexp);
现在它不返回任何内容,而我需要它返回两个URL。我搜索过google和stack以及很多例子,但没有一个能满足我的需要

非常感谢您的帮助

谢谢


Jim

您的
\
字符被解析为字符串转义,并且不会在正则表达式中结束

相反,您应该使用正则表达式文字:

/((ftp|http|https):\/\/)?(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/gi

您的
\
字符将被解析为字符串转义,并且不会在正则表达式中结束

相反,您应该使用正则表达式文字:

/((ftp|http|https):\/\/)?(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/gi

您始终可以使用创建一个图形,以表示Regexp允许的模式。这不是对您的问题的回答,而是帮助调试Regexp问题的一个很好的工具。您可以始终使用创建一个图来表示您的Regexp允许的模式。这不是对您问题的回答,而是一个帮助调试Regexp问题的好工具。非常感谢。我遇到的最后一个问题是,使用“查看www.google.com”这句话,它捕获了所有的单词,而我只需要它来捕获URL。想法?非常感谢你。我遇到的最后一个问题是,使用“查看www.google.com”这句话,它捕获了所有的单词,而我只需要它来捕获URL。思想?