AngularJS自定义URL验证指令


define(["../app"], function (app) {
'use strict';
app.directive('sshUrl', function($rootScope){
"use strict";
return {
require: "ngModel",
link: function (scope, element, attr, ngModel) {
if (ngModel) {
var strRegex = /^((https|HTTPS|http|HTTP|ftp|FTP|rtsp|RTSP|mms|MMS)?:\/\/)?(([0-9a-zA-Z_!~*'().&=+$%-]+: )?[0-9a-zA-Z_!~*'().&=+$%-]+@)?((\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5]$)|([0-9a-zA-Z_!~*'()-]+\.)*([0-9a-zA-Z][0-9a-zA-Z-]{0,61})?[0-9a-zA-Z]\.[a-zA-Z]{2,6})(:[0-9]{1,4})?((\/?)|(\/[0-9a-zA-Z_!~*'().;?:@&=+$,%#-]+)+\/?)$/;
}

var customerUrlCheck = function (value) {
var validity = ngModel.$isEmpty(value) || strRegex.test(value);
ngModel.$setValidity("sshUrl", validity);
return validity ? value : undefined;
};
ngModel.$formatters.push(customerUrlCheck);
ngModel.$parsers.push(customerUrlCheck);
}
};
});
});


<form ng-submit="" id="adTrackForm" name="adTrackForm" novalidate>
<div class="adtrack_add">
<ul>
<li><span>以下信息必须填写:</span></li>
<li>
<span>目标URL<p>(在其媒体投放广告时所指向的URL)</p></span>
<div class="adtrack_add_input">*
<input ssh-url id="targetUrl" name="targetUrl" ng-model="urlconfig.targetUrl" placeholder="www.mydomain/product.html" required/>
</div>   
<span style="color:red" ng-show="adTrackForm.targetUrl.$dirty && adTrackForm.targetUrl.$invalid">
<span ng-show="adTrackForm.targetUrl.$error.required">请输入目标URL</span>
<span ng-show="adTrackForm.targetUrl.$error.sshUrl">您设置的目标URL格式错误</span>
</span>
</li>
</ul>
</div>
<input class="btn btn-info timechange_button" ng-disabled="adTrackForm.targetUrl.$dirty && adTrackForm.targetUrl.$invalid" type="submit" value="提交"/>
</form>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值