所以我有一个输入字段,该字段的值为“ 2020-03-10”。我需要将其转换为“ 10-03-2020”。我什至不需要约会,只需要一个值就可以了。
我觉得这真的很容易,但是我仍然无法通过在这里和google上的搜索查询找到它:p
<input type="text" id="search-text"/>
答案 0 :(得分:3)
您可以使用:
const value = '2020-03-10'
const formatted = value.split('-').reverse().join('-');
console.log(formatted);
答案 1 :(得分:0)
document.getElementById("search-text").value = "2020-03-10"
console.log(document.getElementById("search-text").value.split('-').reverse().join('-'))
<input type="text" id="search-text"/>
答案 2 :(得分:0)
您可以用'-'分割它。然后按所需顺序放回去。使用JavaScript:
function conv(t) {
var mySplit = t.split('-');
return mySplit[2] + '-' + mySplit[1] + '-' + mySplit[0];
}
答案 3 :(得分:0)
正则表达式替换和重新排序
let yyyymmdd ='2020-03-10';
const ddmmyyyy = yyyymmdd.replace(/(\d{4})-(\d{2})-(\d{2})/,"$3-$2-$1")
console.log(ddmmyyyy);
正则表达式和破坏匹配项:
let yyyymmdd ='2020-03-10';
const [_,yyyy,mm,dd] = yyyymmdd.match(/(\d{4})-(\d{2})-(\d{2})/);
const ddmmyyyy = `${dd}-${mm}-${yyyy}`;
console.log(ddmmyyyy);
答案 4 :(得分:0)
一种解决方法:
您可以使用.split('-')
查找所有出现的-
并将元素拆分为数组,然后使用.reverse()
更改数组中元素的顺序,最后使用{{ 1}}将数组转换为字符串,并用.join('-')
-
https://jsfiddle.net/Lekv7jxu/
---编辑
您还可以使用箭头函数创建函数并使代码更干燥
const str = '2020-03-10';
let newStr = str.split('-').reverse().join('-');
答案 5 :(得分:0)
更通用的方法。输入模糊时开始转换
const dateInput = document.querySelector('input#dateAsText');
console.assert(typeof dataInput === 'undefined', {
msg: 'Not find input'
});
dateInput.addEventListener('change', formateDate);
function formateDate(e) {
const date = new Date(e.target.value);
if (Object.prototype.toString.call(date) === '[object Date]') {
e.target.value = `${date.getDate()}-${(date.getMonth()+1).toString().padStart(2, 0)}-${date.getFullYear()}`;
}
}
<input type="text" id="dateAsText">