Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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
Jquery 使用正则表达式验证URL中的空间_Jquery_Regex - Fatal编程技术网

Jquery 使用正则表达式验证URL中的空间

Jquery 使用正则表达式验证URL中的空间,jquery,regex,Jquery,Regex,我使用下面的代码来验证URL。它还可以验证URL中的空间。例如 'http://news.yahoo.com/blogs/lookout/texas -龙卷风-granbury-photos-video-121304415.html' var post_permalink = 'http://news.yahoo.com/blogs/lookout/texas -tornadoes-granbury-photos-video-121304415.html'; if(/^(http:\/\/www

我使用下面的代码来验证URL。它还可以验证URL中的空间。例如
'http://news.yahoo.com/blogs/lookout/texas -龙卷风-granbury-photos-video-121304415.html'

var post_permalink = 'http://news.yahoo.com/blogs/lookout/texas -tornadoes-granbury-photos-video-121304415.html';
if(/^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/|www\.)[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/.test(post_permalink)){
      console.log('valid');
} else {
console.log('invalid');
}
任何人都可以建议我在哪里做更改,这样就不会占用URL中的空间

这是


提前感谢

可以在不改变其含义的情况下简化正则表达式

本部分:

(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/|www\.)
[\-\.]{1}
可以重写为:

(https?:\/\/(www\.)?|www\.)
[-.]
本部分:

(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/|www\.)
[\-\.]{1}
可以重写为:

(https?:\/\/(www\.)?|www\.)
[-.]
不使用捕获组,因此可以将其设置为非捕获组:

/^(?:https?:\/\/(?:www\.)?|www\.)[a-z0-9]+(?:[-.][a-z0-9]+)*\.[a-z]{2,5}(?::[0-9]{1,5})?(?:\/.*)?$/
可以通过将
(?:\/.*)
中结尾处的
*
更改为
\S*
来解决空间问题(模式的其余部分无论如何都不允许空间):


你的质询不是真的质询?是的。我举了一个例子。但我们可以通过上面的查询字符串来检查空格。@adeneo:我现在更改了查询字符串。如果发生
德克萨斯州
-龙卷风
之间的任何案例空间,我需要验证是否必须将
\s+
添加到正则表达式中?谢谢@nhahtdh。太完美了:)