首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >正则表达式:在此表达式的前面需要"http://“

正则表达式:在此表达式的前面需要"http://“
EN

Stack Overflow用户
提问于 2012-12-21 10:25:33
回答 2查看 158关注 0票数 0

我正在使用正则表达式来验证网址,我的正则表达式工作得很好,但唯一的问题是,即使前面没有http://,它也会验证网址。我想让它只验证网址是否有http://在前面(即使它不包含一个www后面)

这是我使用的正则表达式:

代码语言:javascript
运行
复制
((https?)\:\/\/)?([a-z0-9+!*(),;?&=\$_.-]+(\:[a-z0-9+!*(),;?&=\$_.-]+)?@)?([a-z0-9-.]*)\.([a-z]{2,3})(\:[0-9]{2,5})?(\/([a-z0-9+\$_-]\.?)+)*\/?(\?[a-z+&\$_.-][a-z0-9;:@&%=+\/\$_.-]*)?(#[a-z_.-][a-z0-9+\$_.-]*)?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-21 10:27:26

卸下左侧第二个?。它充当一个量词,使整个http部分成为可选的。

票数 4
EN

Stack Overflow用户

发布于 2012-12-21 10:27:59

只制作可选的(s)行吗?

代码语言:javascript
运行
复制
(http(s)?\:\/\/)?([a-z0-9+!*(),;?&=\$_.-]+(\:[a-z0-9+!*(),;?&=\$_.-]+)?@)?([a-z0-9-.]*)\.([a-z]{2,3})(\:[0-9]{2,5})?(\/([a-z0-9+\$_-]\.?)+)*\/?(\?[a-z+&\$_.-][a-z0-9;:@&%=+\/\$_.-]*)?(#[a-z_.-][a-z0-9+\$_.-]*)?

在看到新的答案后,这将需要http或https:

代码语言:javascript
运行
复制
(http(s)?\:\/\/)([a-z0-9+!*(),;?&=\$_.-]+(\:[a-z0-9+!*(),;?&=\$_.-]+)?@)?([a-z0-9-.]*)\.([a-z]{2,3})(\:[0-9]{2,5})?(\/([a-z0-9+\$_-]\.?)+)*\/?(\?[a-z+&\$_.-][a-z0-9;:@&%=+\/\$_.-]*)?(#[a-z_.-][a-z0-9+\$_.-]*)?
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13983489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档