allcnewsBLOGNEWSBLOGASKBLOGBLOGZSK全部技术问答问答技术问答it问答代码软件新闻开发博客电脑/网络手机/数码笔记本电脑互联网操作系统软件硬件编程开发360产品资源分享电脑知识文档中心IT全部全部分类全部分类技术牛文全部分类教程最新网页制作cms教程平面设计媒体动画操作系统网站运营网络安全服务器教程数据库工具网络安全软件教学vbscript正则表达式javascript批处理更多»编程更新教程更新游戏更新allitnewsJava新闻网络医疗信息化安全创业站长电商科技访谈域名会议专栏创业动态融资创投创业学院 / 产品经理创业公司人物访谈营销开发数据库服务器系统虚拟化云计算嵌入式移动开发作业作业1常见软件all电脑网络手机数码生活游戏体育运动明星影音休闲爱好文化艺术社会民生教育科学医疗健康金融管理情感社交地区其他电脑互联网软件硬件编程开发360相关产品手机平板其他电子产品摄影器材360硬件通讯智能设备购物时尚生活常识美容塑身服装服饰出行旅游交通汽车购房置业家居装修美食烹饪单机电脑游戏网页游戏电视游戏桌游棋牌游戏手机游戏小游戏掌机游戏客户端游戏集体游戏其他游戏体育赛事篮球足球其他运动球类运动赛车健身运动运动用品影视娱乐人物音乐动漫摄影摄像收藏宠物幽默搞笑起名花鸟鱼虫茶艺彩票星座占卜书画美术舞蹈小说图书器乐声乐小品相声戏剧戏曲手工艺品历史话题时事政治就业职场军事国防节日风俗法律法规宗教礼仪礼节自然灾害360维权社会人物升学入学人文社科外语资格考试公务员留学出国家庭教育学习方法语文物理生物工程学农业数学化学健康知识心理健康孕育早教内科外科妇产科儿科皮肤科五官科男科整形中医药品传染科其他疾病医院两性肿瘤科创业投资企业管理财务税务银行股票金融理财基金债券保险贸易商务文书国民经济爱情婚姻家庭烦恼北京上海重庆天津黑龙江吉林辽宁河北内蒙古山西陕西宁夏甘肃青海新疆西藏四川贵州云南河南湖北湖南山东江苏浙江安徽江西福建广东广西海南香港澳门台湾海外地区

关于日期正则表达式的思路详解

来源:脚本之家  责任编辑:小易  时间:2017/9/8 21:10:29


关于日期正则表达式的思路详解

票房,原本只是一个数字,但是这样的数字,令老梁产生一个念头:《战狼2》应该立即下线!也许有很多人会很不理解,说好好的一部电影,势头正劲,而且为中国的电影争了光,进入了好莱坞垄断数十年的全球电影票房,目前已经挺进到了第80位,应该继续为《战狼2》点赞才对,为何会有如此的恶毒念头儿?在这里老梁想说的是:全球电影票房的排名固然重要,也需要中国这样一部电影能够争得一席之地,我们也已经实现了。中国也确实一部电影,在世界上扬眉吐气。但是,这样的成功,只属于《战狼2》,并不属于中国电影。《战狼2》爬得越高,未来对于中国电影来说就越是沉重的打击!我们不仅仅需要一部电影《战狼2》,我们需要更多。我们也不仅仅只需很多时候是一个人的思维方式决定的。大多数人认为我没有钱,没有本钱也就挣不到钱!借了钱也怕亏了,没有勇气去创业!能够创业的人都觉得没有钱,所以要创业挣钱!所以说创业的思维和勇气很重要!看好餐饮创业的,可以考虑川西冒菜让你有勇气创业,也能顺利创业!

1        概述

在错的时间遇到对的人,我会等,茫茫人海可以找到一个心爱的人,这是多么大的福气,或许没有你想象那么好,应该也不会糟糕到哪里,所以要知福惜福好这份缘分。爱情合理就好,我们不要委屈将就,不要相信完美的爱情,。防恶意抓取,请查看原文,,真格学网提供内容。

首先需要说明的一点,无论是Winform,还是Webform,都有很成熟的日历控件,无论从易用性还是可扩展性上看,日期的选择和校验还是用日历控件来实现比较好。

夫妻俩家里相处最多的时间就是在卧室里,卧室的好坏也将直接影响到两人的感情生活。在风水学中,卧室风水与夫妻感情有着密不可分的关系。卧室风水好,两人生活甜甜蜜蜜,反之则郁郁闷闷,接下来将带你看看,卧室风水。防恶意抓取,请查看原文,,真格学网提供内容。

前几天在CSDN多个版块看到需要日期正则的帖子,所以整理了这篇文章,和大家一起讨论交流,如有遗漏或错误的地方,还请大家指正。

谢邀,多梦与深睡眠期时间短,睡眠深度不够、睡眠质量不高有密切关系,多梦并不是做梦次数的增多,而是对梦的记忆次数的增加。睡前半小时到1小时之间,不宜思考问题或看书等,应作适当的体力活动(如散步),避免紧。防恶意抓取,请查看原文,,真格学网提供内容。

日期正则一般是对格式有要求,且数据不是直接由用户输入时使用。因应用场景的不同,写出的正则也不同,复杂程度也自然不同。正则的书写需要根据具体情况具体分析,一个基本原则就是:只写合适的,不写复杂的。

家长您好,根据您的问题描述,可以看出宝宝主要是在社交过程中遇到了一些问题,这里面涉及的是分享和被抢东西这两件事情。作为家长,我们希望宝宝能够在一个好的环境中成长,有些时候环境中的因素不可控,比如其它宝。防恶意抓取,请查看原文,,真格学网提供内容。

对于日期提取,只要能与非日期区分开,写最简单的正则即可,如

根据中国武术段位制手册中武术段位制常识中的解答。“段位”的字面解释:“段”是阶段,“位”是位置。依此字意,“武术段位”指在习练武术的过程中,习练者的武术水平在某一习练阶段达到的“位”置——等级。中国武。防恶意抓取,请查看原文,,真格学网提供内容。

\d{4}-\d{2}-\d{2}

如果可以在源字符串中唯一定位yyyy-MM-dd格式的日期,则可用做提取。

如果家里有抽烟的话,就会有烟灰、烟屁股什么的产生,对于狗狗来说,它们很容易被这些东西吸引,甚至是吞到肚子里去,进而对身体健康造成不必要的影响。给出以下几点建议:1.戒烟这当然是最彻底和最理想的解决方式。防恶意抓取,请查看原文,,真格学网提供内容。

对于验证,如果仅仅是验证字符组成及格式是没有多大意义的,还要加入对规则的校验。由于闰年的存在,使得日期的校验正则变得比较复杂。

闭口粉刺为毛囊过度角化导致,所以得需要使用含有“纠正毛孔代谢成分”的产品才能改善噢。毛孔有代谢的脏污,可以使用“洗卸二合一的洁面产品+泥膏状的清洁面膜”协助代谢出来。根深蒂固型的粉刺可以用挤压方式加速。防恶意抓取,请查看原文,,真格学网提供内容。

先来考察一下日期的有效范围以及什么是闰年。

我来说一个冷门的:《火凤燎原》中的陈宫。《火凤燎原》是一部由香港漫画家“陈某”创作,台湾漫画出版社东立出版社出版,并成功打入日本市场的国漫。无论是剧情还是画功,乃至思想深度,《火凤燎原》都是当之无愧的。防恶意抓取,请查看原文,,真格学网提供内容。

2       日期的规则

猫薄荷有叶状和粉末两种,叶状的是我们常说的猫薄荷草,其实猫咪在精神状态和健康情况良好的时候不用吃或吸薄荷的,猫薄荷本身是一种保健产品,猫咪闻或吃了以后会精神百倍,并能起到开胃的作用。一般在猫咪精神不振。防恶意抓取,请查看原文,,真格学网提供内容。

2.1     日期的有效范围

斯巴鲁独特的发动机设计在于将汽缸水平对向排列在曲轴两侧,形成了水平对置发动机(SUBARUBOXER)。由于水平对置发动机的所有汽缸呈水平对向排列,在运转时活塞就像是正在搏斗的拳击手往复挥动的拳头,所。防恶意抓取,请查看原文,,真格学网提供内容。

对于日期的有效范围,不同的应用场景会有所不同。

冷锅和热锅是有区别的,通过以下介绍,你就会明白到底什么是冷锅:冷锅顾名思义,就是由厨房把原料加工好之后,上桌供顾客食用。市场上做的比较好的就是冷锅鱼、冷锅兔。冷锅拒传是宋代苏东坡发明的。苏东坡于重庆(。防恶意抓取,请查看原文,,真格学网提供内容。

MSDN中定义的DateTime对象的有效范围是:0001-01-01 00:00:00到9999-12-31 23:59:59。

首先要有一手麻辣美食,现在的女同学由于麻辣酸辣族比较多,如果你是一个这方面不错的美食高手!让我想象有多少美女会给你加分!二是:一手好面,一生相伴!面食天天都得有,看你拿手不拿手!今天做了碗好面,到处夸。防恶意抓取,请查看原文,,真格学网提供内容。

UNIX时间戳的0按照ISO 8601规范为 :1970-01-01T00:00:00Z。

抛开一些人的“仇富”心理——其实这是羡慕的另一种体现。因为一般人都是对富人有一种天生的“敬畏”心理,人家富是因为人家有能力有本事,最差有人脉有后台,所以觉得人家比自身厉害。有钱装穷,被视为一种玩笑式的。防恶意抓取,请查看原文,,真格学网提供内容。

而实际应用中,日期的范围基本上不会超出DateTime所规定的范围,所以正则验证取其中常用的日期范围即可。

1.懂得距离产生美庄子有云:“君子之交淡若水,小人之交甘若醴”,圣人之言告诉我们,交朋友并不是一味亲近相处,人与人之间的交往要有一定的距离。很多人在与他人相处的时候肆无忌惮,认为这样才是亲近的表现,这。防恶意抓取,请查看原文,,真格学网提供内容。

2.2     什么是闰年

卤肉卷很好吃,下面为朋友分享一个家常做法,很好吃!材料:五花肉适量、水煮鸡蛋适量、冰糖适量、料酒适量、红烧酱油适量、盐适量、甜面酱适量、辣椒适量、面粉适量、黄瓜1根。做法步骤五花肉冷水焯水,去浮沫,肉。防恶意抓取,请查看原文,,真格学网提供内容。

(以下摘自百度百科)

上面提到的有认识的,也有不认识的。我就挑我知道的几个人来说说吧。小时候大约在上小学的时候,被同学带进游戏厅,从此接触到了拳皇,虽然至今仍然是个拳皇菜鸟但是对于拳皇高手一直处于45°仰望的感觉。前几年一。防恶意抓取,请查看原文,,真格学网提供内容。

闰年(leap year)是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的。补上时间差的年份为闰年。

狗狗有尖利的牙齿却不愿意伤害我们。可狗狗有时候不经意的一些行为,你就打骂它。你可知道,狗狗是你生活的一小部分,而你是狗狗生活的全部。我们不该打骂,而是用狗狗期待的玩耍或奖励来引导狗狗告诉它这些行为是错。防恶意抓取,请查看原文,,真格学网提供内容。

地球绕日运行周期为365天5小时48分46秒(合365.24219天),即一回归年(tropical year)。公历的平年只有365日,比回归年短约0.2422 日,每四年累积约一天,把这一天加于2月末(即2月29日),使当年时间长度变为366日,这一年就为闰年。

荷叶茶一片片翠绿的薄荷,冲泡起来就会散发着它的清香,顿时清新四溢,闻起来神清气爽,喝起来带你享受清凉滋味,能够改善口中的异味。每天喝2杯,排出肠胃毒素,还你清新口气。说起薄荷茶,它的各种功效实在是无人不知无人不晓了。清新口气是它最大的亮点,翠绿的叶子上散发着浓郁的薄荷味道,不仅能消除口气,还能让你倍感神清气爽。蒲公英蒲公英是天然的饮品,有口臭的人通常都是因为口腔没有清洗干净,所以每天休闲时刻就可以。防恶意抓取,请查看原文,,真格学网提供内容。

需要注意的是,现在的公历是根据罗马人的“儒略历”改编而得。由于当时没有了解到每年要多算出0.0078天的问题,从公元前46年,到16世纪,一共累计多出了10天。为此,当时的教皇格雷果里十三世,将1582年10月5日人为规定为10月15日。并开始了新闰年规定。即规定公历年份是整百数的,必须是400的倍数才是闰年,不是400的倍数的就是平年。比如,1700年、1800年和1900年为平年,2000年为闰年。此后,平均每年长度为365.2425天,约4年出现1天的偏差。按照每四年一个闰年计算,平均每年就要多算出0.0078天,经过四百年就会多出大约3天来,因此,每四百年中要减少三个闰年。闰年的计算,归结起来就是通常说的:四年一闰;百年不闰,四百年再闰。

个人保守估计最起码15亿人民币以上。《敦刻尔克》--诺兰的又一力作!诺兰的电影,《蝙蝠侠系列》《盗梦空间》《星际穿越》,或者更早的《追随》《记忆碎片》,都是非常非常的经典,诺兰从来没有让人失望过。敦刻尔克大撤退不仅是第二次世界大战的转折点,也是整个人类历史的一个转折点。其重要性,不言而喻。电影题材非常的棒,主题宏大,意境深远,这个题材是大家非常感兴趣的。诺兰本人这个金字招牌!由于本人已经看了影片,觉得它不像一般的战争片,更像一部悬疑惊悚片。电影始终保持着一种紧张的状态,保持了诺兰电影的一贯高水准。今年47岁的诺兰,不管是经历经验,还有能力上,现在都处于最高峰。诺兰很好的掌控了影片节奏,剧情非常。防恶意抓取,请查看原文,,真格学网提供内容。

2.3     日期的格式

休斯顿火箭在季后赛拿到开门红,他们主场118比87痛宰俄克拉荷马城雷霆,火箭在系列赛中1比0领先。雷霆号称拥有联盟最强的内线之一,可火箭在与他们的比拼中丝毫不处下风,老将内内这中间发挥了极其重要的作用。防恶意抓取,请查看原文,,真格学网提供内容。

根据不同的语言文化,日期的连字符会有所不同,通常有以下几种格式:

我也考了五次,我车感不好,教练也不咋滴,是大连新东方的姜磊,态度极其恶劣,骂人!等我考要第四次的时候他不在那儿干了。换了个教练,挺好的,练了两次,驾校不发工资,他不干了。又换了一个,很好,不但教技术,。防恶意抓取,请查看原文,,真格学网提供内容。

yyyyMMdd

一个人长得好不好看,鼻子占了很大的因素鼻子几乎承包了一个人80%的颜值、90%的气质拥有高挺尖翘的鼻子让整个人看起来更出众!怎样才能拥有一个漂亮鼻子呢?答案很简单如果先天没有,那就后天来造然而,打造美。防恶意抓取,请查看原文,,真格学网提供内容。

yyyy-MM-dd

首先必须明确一点,笔者是个90后,只能从90后的视角去看待这个问题。为什么很多00后讨厌用微信?其实从提问者放出来的这张图片就大致可以断定几个原因:第一:00后觉得微信是大人用的,表示微信其实在整体界。防恶意抓取,请查看原文,,真格学网提供内容。

yyyy/MM/dd

很多朋友问我最多的一个问题就是,现在国产手机那个最好?其实还是要看用户群,现在的知名国产手机品牌的用户群都很稳定,不稳定的基本就是三线以后的品牌了!目前国产手机建议购买的只有这几个品牌,其他的可以根据。防恶意抓取,请查看原文,,真格学网提供内容。

yyyy.MM.dd

首先感谢头条的问题。这个问题事实上很难去估计,做为oppo以较高配置,和超级广告做了成功的营销,各种广告赞助,邀请明星代言,以借明星势头做推广。?无论是oppo还是华为都有众多的粉丝,只是oppo在手。防恶意抓取,请查看原文,,真格学网提供内容。

3       日期正则表达式构建

我认为首先你需要的是一个女朋友/男朋友然后进入正题。12年4月初和女朋友从成都坐火车到拉萨,43个小时。第一天晚上9点开车,发发呆,洗漱一下,很快就到10点熄灯时间了,别太兴奋的睡不着了。第二天早上7。防恶意抓取,请查看原文,,真格学网提供内容。

3.1     规则分析

写复杂正则的一个常用方法,就是先把不相关的需求拆分开,分别写出对应的正则,然后组合,检查一下相互的关联关系以及影响,基本上就可以得出对应的正则。

按闰年的定义可知,日期可以有几种分类方法。

3.1.1  根据天数是否与年份有关划分为两类

与年份无关的一类中,根据每月天数的不同,又可细分为两类

  • 1、3、5、7、8、10、12月为1-31日
  • 4、6、9、11月为1-30日

与年份有关的一类中

  • 平年2月为1-28日
  • 闰年2月为1-29日
  • 所有年份的所有月份都包含1-28日
  • 所有年份除2月外都包含29和30日
  • 所有年份1、3、5、7、8、10、12月都包含31日
  • 闰年2月包含29日

3.1.2  根据包含日期不同可划分为四类

3.1.3  分类方法选择

因为日期分类之后的实现,是要通过(exp1|exp2|exp3)这种分支结构来实现的,而分支结构是从左侧分支依次向右开始尝试匹配,当有一个分支匹配成功时,就不再向右尝试,否则尝试所有分支后并报告失败。

分支的多少,每个分支的复杂程度都会影响匹配效率,考虑到被验证日期概率分布,绝大多数都是落到1-28日内,所以采用第二种分类方法,会有效提高匹配效率。

3.2     正则实现

采用3.1.2节的分类方法,就可以针对每一个规则写出对应的正则,以下暂按MM-dd格式进行实现。

先考虑与年份无关的前三条规则,年份可统一写作

(?!0000)[0-9]{4}

下面仅考虑月和日的正则

包括平年在内的所有年份的月份都包含1-28日

(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])

包括平年在内的所有年份除2月外都包含29和30日

(0[13-9]|1[0-2])-(29|30)

包括平年在内的所有年份1、3、5、7、8、10、12月都包含31日

(0[13578]|1[02])-31)

合起来就是除闰年的2月29日外的其它所有日期

(?!0000)[0-9]{4}-((0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])|(0[13-9]|1[0-2])-(29|30)|(0[13578]|1[02])-31)

接下来考虑闰年的实现

闰年2月包含29日

这里的月和日是固定的,就是02-29,只有年是变化的。

可通过以下代码输出所有的闰年年份,考察规则

for (int i = 1; i < 10000; i++){
  if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0){
   richTextBox2.Text += string.Format("{0:0000}", i) + "\n";
  }
}

根据闰年的规则,很容易整理出规则,四年一闰;

([0-9]{2}(0[48]|[2468][048]|[13579][26])

百年不闰,四百年再闰。

(0[48]|[2468][048]|[13579][26])00

合起来就是所有闰年的2月29日

([0-9]{2}(0[48]|[2468][048]|[13579][26])|(0[48]|[2468][048]|[13579][26])00)-02-29)

四条规则都已实现,且互相间没有影响,合起来就是所有符合DateTime范围的日期的正则

^((?!0000)[0-9]{4}-((0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])|(0[13-9]|1[0-2])-(29|30)|(0[13578]|1[02])-31)|([0-9]{2}(0[48]|[2468][048]|[13579][26])|(0[48]|[2468][048]|[13579][26])00)-02-29)$

考虑到这个正则表达式仅仅是用作验证,所以捕获组没有意义,只会占用资源,影响匹配效率,所以可以使用非捕获组来进行优化。

^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$

以上正则年份0001-9999,格式yyyy-MM-dd。可以通过以下代码验证正则的有效性和性能

DateTime dt = new DateTime(1, 1, 1);
DateTime endDay = new DateTime(9999, 12, 31);
Stopwatch sw = new Stopwatch();
sw.Start();
 
Regex dateRegex = new Regex(@"^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$");
 
//Regex dateRegex = new Regex(@"^((?!0000)[0-9]{4}-((0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])|(0[13-9]|1[0-2])-(29|30)|(0[13578]|1[02])-31)|([0-9]{2}(0[48]|[2468][048]|[13579][26])|(0[48]|[2468][048]|[13579][26])00)-02-29)$");
Console.WriteLine("开始日期: " + dt.ToString("yyyy-MM-dd"));
while (dt < endDay){
  if (!dateRegex.IsMatch(dt.ToString("yyyy-MM-dd"))){
   Console.WriteLine(dt.ToString("yyyy-MM-dd") + " false");
  }
  dt = dt.AddDays(1);
}
if (!dateRegex.IsMatch(dt.ToString("yyyy-MM-dd"))){
  Console.WriteLine(dt.ToString("yyyy-MM-dd") + " false");
}
Console.WriteLine("结束日期: " + dt.ToString("yyyy-MM-dd"));
sw.Stop();
Console.WriteLine("测试用时: " + sw.ElapsedMilliseconds + "ms");
Console.WriteLine("测试完成!");
Console.ReadLine();

4       日期正则表达式扩展

4.1     “年月日”形式扩展

  以上实现的是yyyy-MM-dd格式的日期验证,考虑到连字符的不同,以及月和日可能为M和d,即yyyy-M-d的格式,可以对以上正则进行扩展

^(?:(?!0000)[0-9]{4}([-/.]?)(?:(?:0?[1-9]|1[0-2])([-/.]?)(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])([-/.]?)(?:29|30)|(?:0?[13578]|1[02])([-/.]?)31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)([-/.]?)0?2([-/.]?)29)$

  使用反向引用进行简化,年份0001-9999,格式yyyy-MM-dd或yyyy-M-d,连字符可以没有或是“-”、“/”、“.”之一。

^(?:(?!0000)[0-9]{4}([-/.]?)(?:(?:0?[1-9]|1[0-2])\1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\1(?:29|30)|(?:0?[13578]|1[02])\1(?:31))|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)([-/.]?)0?2\2(?:29))$

  这就是“年月日”这种形式最全的一个正则了,不同含义部分以不同颜色标识,可以根据自己的需要进行栽剪。

4.2     其它形式扩展

  了解了以上正则各部分代表的含义,互相间的关系后,就很容易扩展成其它格式的日期正则,如dd/MM/yyyy这种“日月年”格式的日期。

^(?:(?:(?:0?[1-9]|1[0-9]|2[0-8])([-/.]?)(?:0?[1-9]|1[0-2])|(?:29|30)([-/.]?)(?:0?[13-9]|1[0-2])|31([-/.]?)(?:0?[13578]|1[02]))([-/.]?)(?!0000)[0-9]{4}|29([-/.]?)0?2([-/.]?)(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00))$

  这种格式需要注意的就是不能用反向引用来进行优了。连字符等可根据自己的需求栽剪。

4.3     添加时间的扩展

  时间的规格很明确,也很简单,基本上就HH:mm:ss和H:m:s两种形式。

([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]

  合入到日期的正则中,yyyy-MM-dd HH:mm:ss

^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)\s+([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$

4.4     年份定制

  以上所有涉及到平年的年份里,使用的是0001-9999。当然,年份也可以根据闰年规则定制。

  如年份1600-9999,格式yyyy-MM-dd或yyyy-M-d,连字符可以没有或是“-”、“/”、“.”之一。

^(?:(?:1[6-9]|[2-9][0-9])[0-9]{2}([-/.]?)(?:(?:0?[1-9]|1[0-2])\1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\1(?:29|30)|(?:0?[13578]|1[02])\1(?:31))|(?:(?:1[6-9]|[2-9][0-9])(?:0[48]|[2468][048]|[13579][26])|(?:16|[2468][048]|[3579][26])00)([-/.]?)0?2\2(?:29))$

5       特别说明

  以上正则采用的是最基本的正则语法规则,绝大多数采用传统NFA引擎的语言都可以支持,包括JavaScript、Java、.NET等。

  另外需求说明的是,虽然日期的规则相对明确,可以采用这种方式裁剪来得到符合要求的日期正则,但是并不推荐这样使用正则,正则的强大在于它的灵活性,可以根据需求,量身打造最合适的正则,如果只是用来套用模板,那正则也就不称其为正则了。

  正则的语法规则并不多,而且很容易入门,掌握语法规则,量体裁衣,才是正则之“道”。

6       应用

一、首先看需求

  日期的输入:

  手动输入,可输入两种格式yyyymmdd或yyyy-mm-dd

二、解决思路

用户手动输入日期,需要验证输入的日期格式

用户可能的输入情况可以分为以下几种:

(1).输入为空或者为空格

(2).输入非日期格式

  根据保存到数据库中的日期格式,保存的格式为yyyy-mm-dd,所以用户在输入yyyymmdd后需要进行转换,转换成yyyy-mm-dd。

  思路:

  验证日期格式,首现想到的是VS的验证控件,但是因为需要验证的控件有几十个,使用验证控件就需要一个个的拉控件,如果后期需要修改也很麻烦,而通过JS实现控制,再通过正则表达式对日期进行验证。

三、JS实现

//验证日期
function date(id) {
  var idvalue = document.getElementById(id).value;  //通过查找元素
  var tmpStr = "";
  var strReturn = "";
  //调用trim()去掉空格,因为js不支持trim()
  var iIdNo = trim(idvalue);
  //正则表达式,判断日期格式,包括日期的界限,日期的格式,平年和闰年
  var v = idvalue.match(/^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$/);
  //输入为空时跳过检测
  if (iIdNo.length == 0) {
    return false;
  }
  //自动更改日期格式为yyyy-mm-dd
  if (iIdNo.length == 8) {
    tmpStr = iIdNo.substring(0, 8);
    tmpStr = tmpStr.substring(0, 4) + "-" + tmpStr.substring(4, 6) + "-" + tmpStr.substring(6, 8)
    document.getElementById(id).value = tmpStr;
    document.getElementById(id).focus();
  }
  //验证,判断日期格式
  if ((iIdNo.length != 8) && !v) {
    strReturn = "日期格式错误,提示:19990101或1999-01-01";
    alert(strReturn);
    document.getElementById(id).select();
    return false;
  }
}
//运用正则表达式去除字符串两端空格(因为js不支持trim()) 
function trim(str) {
  return str.replace(/(^\s*)|(\s*$)/g, "");
}
//前台调用(获得焦点触发)
<input class="txtenterschooldate" size="14" type="text" id="txtenterschooldate" name="txtenterschooldate" onblur="date('txtenterschooldate')"/>

总结

以上所述是小编给大家介绍的关于日期正则表达式的思路详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

首先,我要告诉你,在异性交往中,紧张感是正常的。题主不需要太过焦虑,你破除紧张感的第一步是正视它,接纳它,用负面的情感去看待,反而不利于解决问题。接下来是实用的方法论。①与异性交流时,眼神注视对方的眉心位置。容易害羞的同学在面对异性时,为了减轻压力,往往选择目光游移,不敢直视。这不仅会给对方造成一种不礼貌的印象,还会无形之中令自己更感挫败,陷入一种接触——羞涩——挫败——接触的死循环里,问题永远得不到解决。所以在接触异性时,不要刻意转移目光,如果实在觉得害羞,就把眼神放在对方的眉心位置,你会轻松很多。之后循序渐进吧!②大方承认自己的紧张,别人不会嘲笑你的。没经验的男孩在心仪的女生面前,往往汗流在错的时间遇到对的人,我会等,茫茫人海可以找到一个心爱的人,这是多么大的福气,或许没有你想象那么好,应该也不会糟糕到哪里,所以要知福惜福好这份缘分。爱情合理就好,我们不要委屈将就,不要相信完美的爱情,其个人对你的好,并不是立刻就能看到的。因为汹涌而至的爱,来得快去的也快。而真正对你好的人,往往是细水长流。你可能会怪他没有付出真心,但在一天天过日子里,却能感觉到他对你无所不在的关心。好的感情,不是一下子就把你感动晕,而是细水长流的把你宠坏。一个人的生命里,擦肩而过的人有千千万万,有几个是知音?有几个是深爱自己的人?爱情再坚固,也无法承受忙碌的侵蚀,你忙得天荒地乱,你忙得忘记关心,你忙得身心疲惫,


  • 本文相关:
  • js匹配日期和时间的正则表达式示例
  • c#正则表达式判断输入日期格式是否正确
  • 正则表达式实现将mm/dd/yyyy格式的日期转换为yyyy-mm-dd格式
  • javascript利用正则表达式去除日期中的“-”
  • 匹配yyyy-mm-dd日期格式的的正则表达式
  • 正则应用之 日期正则表达式
  • js:日期正则表达式及检测
  • 一个特牛的日期时间判断正则表达式
  • 正则替换字符串功能
  • js正则表达式一条龙讲解(从原理和语法到js正则)
  • javascript中使用正则表达式实现删除字符串中的前后空格
  • javascript 正则表达式之regexp属性、方法及应用分析
  • 使用正则表达式替换报表名称中的特殊字符(推荐)
  • 正则表达式检测用户输入的email地址是否合法
  • java正则表达式入门基础篇(新手必看)
  • 用正则表达式判断字符串是汉字还是拼音的js函数代码
  • 正则表达式下全部符号解释说明
  • js 正则表达式用法介绍
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved