【发布时间】:2018-03-31 17:59:40
【问题描述】:
如何使用正则表达式将日期格式时间从 DD/MM/YYYY 转换为 YYYY-MM-DD?
【问题讨论】:
-
这只是一个字符串还是
Date?你试过什么?您是否查看过 moment.js 之类的库?我们不会只为您做所有事情。
标签: javascript html json regex
如何使用正则表达式将日期格式时间从 DD/MM/YYYY 转换为 YYYY-MM-DD?
【问题讨论】:
Date?你试过什么?您是否查看过 moment.js 之类的库?我们不会只为您做所有事情。
标签: javascript html json regex
您可以使用regex 和replace() 方法轻松实现您的结果。
Regex 在这些情况下非常有用。
var yourString = "16/05/2017";
var desired = yourString.replace(/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/, "$3-$2-$1");
上述模式的解释
在上面regex;
\d- 匹配一个数字(等于 [0-9])
{1, 2}- 检查 1 次或 2 次[因为日期和月份只能是 1 位数(例如 1)或 2 位数(例如 01)]
{4}- 检查了 4 次(你可以相应地改变它)
^- 断言字符串开头的位置
$- 在字符串的末尾断言位置,或者在字符串末尾的行终止符之前(如果有的话)在第二个(替换)字符串中,
$3、$2或$1表示正则表达式(前面提到的那个)后跟连字符(-)的顺序,这就是您所期望的。
您还可以在here 中测试上述模式或在here 中测试整个代码。
问候:)
【讨论】:
很简单:
yourString.split('/').reverse().join('-')
split 部分将按照数字第一次出现的顺序组成一个数组。
reverse 将更改顺序,在您的情况下,从 day、month、year 到 year、month、day
join 将使用'-' 分隔符将数组转换为字符串。
【讨论】:
尝试拆分 / 字符上的字符串并以正确的格式重新组合:
var dateString = '16/05/2017'; // to format "2017-05-16"
var nums = dateString.split('/');
var newDateString = `${nums[2]}-${nums[1]}-${nums[0]}`
console.log(newDateString)
【讨论】: