【发布时间】:2016-04-01 07:09:12
【问题描述】:
以下是我用来验证网站 URL 的 URL 表达式(正则表达式):
/(https?:\/\/)(www)?[A-Za-z0-9.\-@_~]+\.[A-Za-z]{2,}(:[0-9]{2,5})?(\/[A-Za-z0-9\/_\-.~?&=]*)*/
我的 Angular JS 代码实现如下:
<md-input-container class="md-block" style="margin-top:20px;">
<label>Website</label>
<input ng-model="schoolDetails.website" name="website" ng-change="editField()" type="url" ng-pattern="/(https?:\/\/)(www)?[A-Za-z0-9.\-@_~]+\.[A-Za-z]{2,}(:[0-9]{2,5})?(\/[A-Za-z0-9\/_\-.~?&=]*)*/">
<div ng-messages="schoolDetailsForm.website.$error">
<div ng-message="pattern">Please enter a valid website</div>
</div>
</md-input-container>
假设我提供了有效的 URL http://www.bharatividyapeeth.edu 它工作正常。
如果我输入无效的 URL,http://www. 会出现错误消息,但是当我输入无效的 URL 时,http://www.bharatividyapeeth 它不会显示错误消息并接受它作为有效的 URL。
有人可以更正我的代码以正确验证网站 URL 吗?
谢谢。
【问题讨论】:
-
last
*in(\/[A-Za-z0-9\/_\-.~?&=]*)*将使匹配成功,即使它发生0次 -
@rock321987:您能提出正确的正则表达式作为答案吗?这对我有很大帮助,我应该尽快接受它作为答案。
-
我不知道我为什么要为
email verification发帖 -
^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$
标签: javascript angularjs regex url-validation