gpt4 book ai didi

javascript - 将冒号分隔符插入计时(即将 1230a 转换为 12 :30a and 1430 to 14:30 )

转载 作者:行者123 更新时间:2023-11-30 07:37:20 26 4
gpt4 key购买 nike

我在我的项目中有一个要求,我们有一些输入框,我们应该输入时间

时间可以以任何格式输入,即 12:30a1230143014:30 .

1230 或 1430 格式输入的计时问题我无法通过Data.parse(' 1230')。我必须解析时间以将它们转换为日期对象,以便我可以对它们执行更多操作。

所以对于这个要求,我必须在这些时间之间输入一个冒号。I.E 将 1230 转换为 12:30,将 1430 转换为 14:30。

我必须支持的时间:

12 小时:1230a,1230am,12:30a,12:30am

24 小时:1430,14:30

最佳答案

正如其他人提到的,您可以使用正则表达式 /\b(\d{1,2})(\d{2})/g 并将其替换为 $1: $2。你要求一个解释,你这样做是完全正确的。

Javascript 代码:

var str = '430a';

var newStr = str.replace(/\b(\d{1,2})(\d{2})/g, '$1:$2');

console.log(newStr); // "4:30a"

正则表达式剖析:

  • / - 正则表达式的开头 - 向 javascript 表明这是一个正则表达式 - 这需要在末尾重复
  • \b - 单词边界,表示空格、句点、逗号、字符串开头等 - 这意味着我们不匹配 b182 因为 b 不是边界
  • (\d{1,2}) - 匹配数字匹配 1 到 2 次(包括两者)的捕获组。将匹配例如。 “2”和“24”
  • (\d{2}) - 匹配数字的捕获组总是匹配 2 次。将匹配例如。 “30”
  • / - 正则表达式的结尾 - 它也是我们修饰符的分隔符
  • g - 我们的修饰符 - 这意味着我们将替换 任何 而不仅仅是第一个

当我们用 $1:$2 替换时,这意味着“第一个捕获组 ($1) 的内容,后跟一个冒号 (:) >), 然后是第二个捕获组 ($2) 的内容。

转换:

1430             -> 14:30
1230a -> 12:30a
1230am -> 12:30am
430a -> 4:30a
The year is 2015 -> The year is 20:15
123456 -> 12:3456
Blink182 -> Blink182 (untouched)
Blink 182 -> Blink 1:82

DEMO

关于javascript - 将冒号分隔符插入计时(即将 1230a 转换为 12 :30a and 1430 to 14:30 ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28876076/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com