验证用户输入的字符串是否为日期时间

栏目: JavaScript · 发布时间: 8年前

内容简介:验证用户输入的字符串是否为日期时间

在angularjs中,想在文本框中,验证用户输入的字符串是否为日期时间。

刚开始时,Insus.NET想到的是正则,这只是验证到日期与时间的格式是否正确而已,而对于2月最后一天或是30或是31号,还是无能为力。

因此,Insus.NET想使用angularjs的自定义指令来验证解决此问题。

在ASP.NET MVC的项目中,创建一个控制器,并创建一个Action:

验证用户输入的字符串是否为日期时间

控制器源代码:


using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace Insus.NET.Controllers
{
    public class CommonsController : Controller
    {
        public JsonResult ValidateDate(string date)
        {
            object _Data;

            DateTime dt;
            if (DateTime.TryParse(date, out dt))
            {
                _Data = new { result = true };
            }
            else
            {
                _Data = new { result = false };
            }

            return new JsonResult
            {
                Data = _Data,
                ContentEncoding = System.Text.Encoding.UTF8,
                JsonRequestBehavior = JsonRequestBehavior.AllowGet
            };
        }
    }
}

Source Code

接下来,你可以写Directive了,那是一个js文件:

验证用户输入的字符串是否为日期时间

validateDate的angularjs代码:


airExpressApp.directive('validateDate', function ($http, $q) {
    return {
        restrict: 'AE',
        require: 'ngModel',
        link: function ($scope, element, attributes, ngModelController) {
            ngModelController.$asyncValidators.dataValid = function (modelValue, viewValue) {
                var deferred = $q.defer();

                var obj = {};
                obj.date = modelValue;
                $http({
                    method: 'POST',
                    url: '/Commons/ValidateDate',
                    dataType: 'json',
                    headers: {
                        'Content-Type': 'application/json; charset=utf-8'
                    },
                    data: JSON.stringify(obj),
                }).then(function (response) {
                    if (ngModelController.$isEmpty(modelValue) || response.data.result) {
                        deferred.resolve();
                    } else {
                        deferred.reject();
                    }
                });
                return deferred.promise;
            };
        }
    }
});

Source Code

html的input应用此angularjs的属性:

验证用户输入的字符串是否为日期时间

演示:

验证用户输入的字符串是否为日期时间

以上所述就是小编给大家介绍的《验证用户输入的字符串是否为日期时间》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

CSS实战手册(第2版)

CSS实战手册(第2版)

[美] David Sawyer McFarland / 俞黎敏 / 电子工业出版社 / 2010-6 / 69.80元

本书从介绍最基本的CSS知识开始,到建立用于打印网页的CSS和改进你的CSS习惯的最佳实践。将关于CSS的选择器、继承、层叠、格式化、边距、填充、边框、图片、网站导航、表格、表单、浮动布局、定位网页上的元素,以及用于打印网页的CSS等技术通过逐步地讲解与教程串联了起来。每章内容从简单到复杂,一步一步地建立起一个完整的教程示例,并在每章都会详细讨论一些技巧、最佳实践和各浏览器之间一致性的兼容问题及如......一起来看看 《CSS实战手册(第2版)》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

随机密码生成器
随机密码生成器

多种字符组合密码