正则表达式和 ISO8601 格式的日期时间 [重复]

2023-12-27

我有一个 ISO 8601 格式的日期时间字符串

2012-10-06T04:13:00+00:00

以及以下正则表达式与该字符串不匹配

#(\d{4})-(\d{2})-(\d{2})T(\d{2})\:(\d{2})\:(\d{2})\+(\d{2})\:(\d{2})#

我不明白为什么它不匹配。

我转义了元字符,对我来说似乎没问题。

http://jsfiddle.net/5n5vk/2/ http://jsfiddle.net/5n5vk/2/

EDIT :

正确的方式:http://jsfiddle.net/5n5vk/3/ http://jsfiddle.net/5n5vk/3/


不完整的正则表达式

它是不完整的匹配无效日期例如2013-99-99T04:13:00+00:00.

更好的解决方案

下面的正则表达式不会匹配这种无效日期(参见ISO 8601 日期验证并不糟糕 http://www.pelagodesign.com/blog/2009/05/20/iso-8601-date-validation-that-doesnt-suck/)。您可以使用以下代码进行测试:

re = /^([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T\s]((([01]\d|2[0-3])((:?)[0-5]\d)?|24\:?00)([\.,]\d+(?!:))?)?(\17[0-5]\d([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/
var testDates = {
    'date' : "2012-10-06T04:13:00+00:00",
    'validDate' : "0785-10-10T04:13:00+00:00",
    'invalidDate' : "2013-99-99T04:13:00+00:00",
    '1234Date': '1234'
}
for (var d in testDates) {
    if (re.test(testDates[d])) { console.info('[valid]: '+testDates[d]); }
    else { console.error('[invalid]: '+testDates[d]); }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正则表达式和 ISO8601 格式的日期时间 [重复] 的相关文章

  • 将 Regex 对象分配给 html 输入模式

    我需要以编程方式将正则表达式对象分配给输入元素模式属性 以下是我当前的实现 var regex d 5 element attr pattern regex toString slice 1 1 有没有更好的方法来做到这一点而不需要字符串操
  • 使用 Ajax Jquery post 请求进行 Json 劫持

    昨天 我读了一些关于如何预防的好文章使用 Asp Net MVC 进行 Json 劫持 http haacked com archive 2009 06 24 json hijacking aspx 规则是 永远不要通过 get 请求发送
  • 如何将值发布到输入框中?

    Intro I would like to get the current time after clicking at click and POST the value into input text box Note 假设包含引导样式表
  • Javascript 对象属性名称

    在 C 中 可以将对象属性的名称作为字符串值获取 名称 对象 Property gt myProperty 这可以在 Javascript Typescript 中完成吗 Object Keys 是我找到的唯一东西 但它给了我所有的键 示例
  • 在上传之前预览图像 VUEjs [重复]

    这个问题在这里已经有答案了 我知道这个问题已经被问过 但我不知道如何在vuejs中使用代码 我尝试了很多但没有任何结果 我还添加了我的代码 有人可以帮帮我吗 这是我的代码 谢谢 html
  • jQuery:查找具有特定自定义属性的元素

    我只想找到具有特定自定义属性值的元素 例如 我想找一个div其具有属性data divNumber 6 var number 6 var myDiv data divNumber number 我尝试使用http api jquery co
  • Javascript 进程是否有多个执行线程?

    背景 我正在创建一个 地址簿 类型的应用程序 有很多条目需要加载 一个想法是首先加载一小部分条目 让用户开始 然后将剩余条目排队 优先考虑用户单击的条目 例如 如果他们单击以 X 开头的名称 请先加载这些名称 然后再处理队列的其余部分 这个
  • 检测 Webkit/Chrome 中 HTML5 数字控件更改的事件?

    HTML5 为我们提供了一些新的输入元素 例如
  • 更新存储在 chrome 扩展本地存储中的对象

    我正在开发一个 chrome 扩展 我将存储服务器发送的对象 例如 我将收到 命令 id 1 类型 A 大小 B 优先级 C 如果我有一个数据库 我会将其作为表中的一行插入commands 使用 chrome storage 我将这些对象的
  • 使用 jQuery inputmask 插件范围 0-100

    如何创建 0 到 100 范围内的掩码 document ready function masked inputmask 您可以使用jquery inputmask regex extensions js为了那个原因 你可以找到带有所有扩展
  • onClick 处理程序在每个渲染周期触发

    我有这样的默认状态 this state selectedTab tab1 then 我的渲染方法是这样的 render const selectedTab this state return li tab1 li li tab2 li d
  • 如何将一个数组中的所有项目复制到另一个数组中?

    如何将数组的每个元素 其中元素是对象 复制到另一个数组中 以便它们完全独立 我不想更改一个数组中的元素来影响另一个数组 这里的关键是 数组中的条目是对象 并且 您不希望对一个数组中的对象的修改显示在另一个数组中 这意味着我们不仅需要将对象复
  • 检查用户设备的 GPS 是否开启

    我正在使用 jQuery Mobile 和 PHP 开发一个应用程序 我没有使用 Phonegap 或其他框架 我需要找到用户的geolocation 如果用户设备的 GPS 关闭 那么我无法获取位置 现在我需要查找用户设备的 GPS 是否
  • 使用 float:left 与 display:inline-block 的 jQuery UI 拖放排序比较

    我这里有两个例子 这两个例子之间的唯一区别是 一种使用display inline block 另一种使用float left li doc item 显示 内联块 与 li doc item float left 我的问题是 displa
  • 如何知道 .keyup() 是否是字符键(jQuery)

    如何知道 keyup 是否是字符键 jQuery input keyup function if key is a character such as a b A b c 5 3 2 etc not enter key or shift o
  • 轮播滑动(未滑动)事件上的火灾事件,Bootstrap 3

    Bootstrap 2 似乎可以很好地处理幻灯片事件 请参阅这个问题 https stackoverflow com questions 9651466 how to attach slide slid events to the boot
  • 如何将MathJax公式转换为img

    Mathjax 现在在我的项目中运行良好 但有一个问题 有没有办法将MathJax的公式 纯html和css 转换成img文件 我可以保存 MathJax 可以配置为生成 SVG 看http docs mathjax org en late
  • javascript - 如何获取对象名称或关联数组索引名称?

    我有一个像这样的 JSON 对象 var list name1 element1 value1 name2 element1 value2 如何提取所有 nameX 字符串值 例如 假设我想将它们连接在一个字符串中输出 例如 name1 n
  • 正则表达式仅允许特定数字

    我正在寻找一个只允许输入特定数字的正则表达式 例如2 4 5 6 10 18 我尝试过类似的东西 2 4 5 6 10 18 我输入的任何内容都无法通过正则表达式 然后计算机用手指着我并大笑 我哪里出错了 单引号是不必要的 您正在寻找的正则
  • 将引导程序弹出框保留在视口内

    我正在尝试使用带有按钮的侧边栏创建一个菜单 每个按钮都有一个指定的包含相关数据的弹出窗口 不幸的是 其中一个弹出窗口可能包含任意数量的行 并且在某些情况下它可能部分位于视口之外 See http jsfiddle net bfd9f 1 h

随机推荐

  • 使用Apple新的AudioEngine改变AudioPlayer声音的Pitch

    我目前正在尝试让 Apple 的新音频引擎与我当前的音频设置配合使用 具体来说 我正在尝试使用音频引擎改变音调 这显然是可能的这个帖子 https stackoverflow com questions 25333140 swift usi
  • glsl 和不同值的透视校正

    光栅化器是否使用透视校正对每个变化的顶点值 或在较新版本的 glsl 值中 走出 顶点着色器 进行插值 这取决于硬件吗 当发生裁剪时 裁剪顶点的值是如何计算的 我尝试撤消透视校正 并注意到被剪切的多边形的奇怪行为 我想更好地了解幕后发生的事
  • DataGridView - 使用DataPropertyName显示子元素属性

    让我们想象一下我有以下课程 public class Master public string MasterName Something public List
  • Flutter:我们如何将 Firebase 数据库与桌面应用程序一起使用

    我正在考虑使用 dart 和 flutter 开发一个桌面应用程序 但我不知道如何将 Firebase 数据库与其集成 任何建议将不胜感激 提前致谢 Use Firedart用于将 FIRebase 集成到基于桌面的 Flutter 应用程
  • python 中捕获性能异常

    我知道 python 中的异常处理速度很快try但就捕获量而言 可能会很昂贵 这是否意味着 try some code except MyException pass 比这个更快吗 try some code except MyExcept
  • numpy timedelta64 不显示分数

    我想将 847 小时转换为天 实际结果是 847 24 35 29 但是 numpy 仅显示 35 天 import numpy as np x np timedelta64 847 h x np timedelta64 x D print
  • PySpark 1.5 如何将时间戳从秒截断为最近的分钟

    我正在使用 PySpark 我在数据帧 canon evt 中有一个列 dt 这是一个时间戳 我正在尝试从日期时间值中删除秒 它最初是作为字符串从镶木地板中读入的 然后我尝试通过将其转换为时间戳 canon evt canon evt wi
  • WorkManager 尝试在 Application#onCreate 中将独特的定期工作排入队列时崩溃 [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我想将 WorkManager 与 Dagger 2 一起使用 将依赖项注入到工作人员中 我跟着本文 https proandro
  • 从 JList 取回数据

    我在谷歌上搜索一个从 JList 组件检索数据的解决方案 但没有找到任何解决方案 那么 Jlist 是否有一种返回其项目的方法 我不想要只选择一个 我想要整个清单 原因是我有这个方法可以根据列表框的选定值更新对话框的所有组件 我想用相同的方
  • 为什么我的 vba 代码将逗号视为新行?

    我有这段从文本文件中读取的代码 当行以 Q 开头时 它是一个问题 R 和 W 分别是读取到形状的错误和正确答案 但问题是 如果文本中的任何位置有逗号 我的 powerpoint 宏会将其视为新行 请帮忙解决这个问题吗 这是代码 Open A
  • UIViewController 生命周期调用与状态恢复相结合

    我正在尝试在使用 iOS 6 和故事板的应用程序中实现状态恢复 但我在寻找防止重复调用繁重方法的方法时遇到问题 如果我只是启动应用程序 那么我需要在中设置用户界面viewDidLoad void viewDidLoad super view
  • 如何制作自定义形状的按钮?

    我正在开发一个 iPhone 应用程序 它要求按钮的形状不是矩形 正方形 例如阿米巴形状的按钮 此外 当单击该按钮时 该按钮仅突出显示其大小 所以仅仅设置背景图片是不够的 我该怎么办 一种方法是为正常状态和选定状态制作预渲染图像 然后设置使
  • 带有overlayskscene Xcode Swift 的屏幕触摸Scenekit 导致应用程序崩溃

    嘿 好吧 在 Overlayskene 的场景套件 3D 游戏中识别 HUD 触摸的最佳方法是什么 因为我有一个名为 AButton 的按钮 但是当我触摸按钮或屏幕时 游戏会在几个小时的搜索后崩溃 我猜问题是场景套件上的 touchbegi
  • iOS/Android 上的 OpenMP

    OpenMP 在跨平台的 GCC 中受支持 但这是否意味着 OpenMP 在所有目标平台上都受支持 具体来说 iOS 和 Android 随着手机 平板电脑转向四核 在游戏中不使用所有核心将是一个巨大的劣势 作为一名非移动开发人员 我不知道
  • 创建重定向到另一个 URL 的 WordPress 页面

    我想创建一个新的 WordPress 页面 它实际上是另一个网站的链接 目标是让页面显示在我的页面列表中 但实际上将 Web 用户发送到目标 URL 例如 假设我想包含一个指示 我的照片 的页面 但实际上将它们重定向到 Flickr 我猜测
  • 如何在 docker 中将 /proc 文件系统重新挂载为 r/w 系统?

    我已经在 Ubuntu 12 04 上安装了 docker 0 11 1 我正在尝试将 shmmax 从固定值 32 M 更改为更大的值 1G 当我运行命令时 从 docker 中 sysctl w kernel shmmax 107374
  • 将使用“by”创建的摘要转换为 data.frame

    df1 data frame c 2 1 2 c 1 2 3 4 5 6 seq 141 170 create data frame names df1 c gender age height column names df1 gender
  • 在基于 JSF 的应用程序中捕获并记录/通知未处理的异常

    我想使用 log4j 检查并记录 JSF Web 应用程序中所有未处理的异常 我读了这篇文章使用 log4j 记录 Java 中的运行时异常 https stackoverflow com questions 2344654 log run
  • ElementClickInterceptedException:消息:元素在点 (x,y) 处不可单击,因为另一个元素遮挡了它

    您好 我继续收到错误 ElementClickInterceptedException 消息 元素在点 x y 处不可单击 因为另一个元素遮挡了它 我尝试了很多解决方法 包括时间延迟 但似乎没有任何效果 我在这里尝试了一些解决方案 Sele
  • 正则表达式和 ISO8601 格式的日期时间 [重复]

    这个问题在这里已经有答案了 我有一个 ISO 8601 格式的日期时间字符串 2012 10 06T04 13 00 00 00 以及以下正则表达式与该字符串不匹配 d 4 d 2 d 2 T d 2 d 2 d 2 d 2 d 2 我不明