如何使用regex将一个简单的日期格式字符串从DD/MM/YYYY转换为YYYY-MM-DD?
DD/MM/YYYY
YYYY-MM-DD
pinkon5k1#
您可以将regex与replace()方法沿着使用,以轻松实现您的结果。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次(您可以相应地更改它)^-Assert字符串开头的位置$-Assert字符串末尾的位置,或字符串末尾的行终止符之前(如果有)在第二个(替换)字符串中,$3、$2或$1表示正则表达式(前面提到的那个)的顺序,后跟连字符(-),这就是您所期望的。您还可以在here中测试上述模式,或者在here中测试整个代码。问候:)
\d
{1, 2}
{4}
^
$
$3
$2
$1
-
o7jaxewo2#
很简单yourString.split('/').reverse().join('-')split部件将按照数字首次出现的顺序创建一个Array。reverse将更改顺序,在您的情况下,从day、month、year更改为year、month、dayjoin将使用'-'分隔符将数组转换为字符串。
yourString.split('/').reverse().join('-')
split
reverse
day
month
year
join
'-'
ldioqlga3#
尝试在/字符上拆分字符串,然后以正确的格式重新组装:
/
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)
3条答案
按热度按时间pinkon5k1#
您可以将
regex
与replace()
方法沿着使用,以轻松实现您的结果。Regex
在这些情况下非常有用。上述模式的解释
在上述
regex
中;\d
-匹配数字(等于[0-9]){1, 2}
-检查1次或2次[因为日期和月份只能是1位数(例如1)或2位数(例如01)]{4}
-恰好选中4次(您可以相应地更改它)^
-Assert字符串开头的位置$
-Assert字符串末尾的位置,或字符串末尾的行终止符之前(如果有)在第二个(替换)字符串中,
$3
、$2
或$1
表示正则表达式(前面提到的那个)的顺序,后跟连字符(-
),这就是您所期望的。您还可以在here中测试上述模式,或者在here中测试整个代码。
问候:)
o7jaxewo2#
很简单
yourString.split('/').reverse().join('-')
split
部件将按照数字首次出现的顺序创建一个Array。reverse
将更改顺序,在您的情况下,从day
、month
、year
更改为year
、month
、day
join
将使用'-'
分隔符将数组转换为字符串。ldioqlga3#
尝试在
/
字符上拆分字符串,然后以正确的格式重新组装: