Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.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,我找到了许多解决办法,但没有一个对我有用 例如,我想查找以www.开头,以空格或?结尾的URL。在本例中,我真正的意思是它以?结尾,而不一定是CGI相关的URL 我想用正则表达式 var r = /(^|[\s\?])(www\..+?(?=([\s]|\?|($))))/g; 我的示例使用: 如何在正则表达式中使用\?,以防止在?之前包含/的URL结尾 我无法解决url末尾有点的最后一个问题。 有人能帮忙吗?在你的小提琴上试试这个: var r = /(^|\??)(www\.[^\?]+

我找到了许多解决办法,但没有一个对我有用

例如,我想查找以
www.
开头,以空格或
结尾的URL。在本例中,我真正的意思是它以
结尾,而不一定是CGI相关的URL

我想用正则表达式

var r = /(^|[\s\?])(www\..+?(?=([\s]|\?|($))))/g;
我的示例使用:

如何在正则表达式中使用
\?
,以防止在
之前包含
/
的URL结尾

我无法解决url末尾有点的最后一个问题。
有人能帮忙吗?

在你的小提琴上试试这个:

var r = /(^|\??)(www\.[^\?]+)/g;
我在这里更新了你的小提琴:

更新:

我明白你现在想做什么了。不幸的是,除了
/
,这两个字符串本质上是相同的,因此除非您希望正则表达式假设斜杠后面的
表示CGI调用,否则您就无能为力了。但你可以试试这个:

var r = /(^|\??)(www\.[^\?]+\/[^\/]+\?[^\?]+|www\.[^\?]+)/g;
更新小提琴:

更新2:确定需求后,这是添加到fiddle 10的最终RegExp I:

var r = /(^|[\?\s])(www\.[^\? ]+\/[^\/ ]*\?[^\? ]+|www\.[^\? ]+)/g;

我不知道问题是什么。您是否希望检测某个域名中有
,只要它不是
/?
?此处有一个示例,说明哪些内容应该返回true,哪些内容不应该返回true。是的,字符串“www.domain.com?www.domain.net”包含两个URL,是吗?下一个字符串“www.domain.com/cgi/script.pl?www.domain.net”包含一个带有cgi参数的url SSO,第一个字符串替换为www.domain.com?www.domain.netsecond”www.domain.com/cgi/script.pl?www.domain.net“我取消注释字符串在哪里?”?由于cgiThey使用TLD列表来检测域结束,接下来他们搜索空格或其他非逻辑字符,以找到URL的真正结束。您希望看到什么?“和www.domain.net文本再次”分开。但是它的url和CGI一样长,并且在末尾标记了(A)的www.domain.net