将文本转换为其他格式

时间:2020-03-10 14:09:27

标签: javascript

所以我有一个输入字段,该字段的值为“ 2020-03-10”。我需要将其转换为“ 10-03-2020”。我什至不需要约会,只需要一个值就可以了。

我觉得这真的很容易,但是我仍然无法通过在这里和google上的搜索查询找到它:p

<input type="text" id="search-text"/>

6 个答案:

答案 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">