0

我有一个文本字段(不是日期字段),其中仅包含一个值,例如“2013-08-27”,我的目标是颠倒顺序并获得“27-08-2013”​​。重新安排内容很重要,但我没有足够的javascript知识。我尝试使用一些“日期”变量但没有成功很可能是因为我的字段不是日期字段。

与该字段相关的 html 如下所示:

<input type="text" value="2013-08-27" name="my_field" id="my-field" readonly="">

如果您可以给我一个基于此的代码示例:

var my_field = document.getElementById('my_field');

谢谢

PS:我准确地说我无权访问该字段的 html,因为它位于远程服务器上。我只能通过在为此计划的 JS 文件中添加代码来进行交互。该字段还具有“只读”属性,因为不打算修改。

4

7 回答 7

2

这段代码应该可以解决问题:

var revert = function(str) {
    var parts = str.split("-");
    var newArr = [];
    for(var i=parts.length-1; p=parts[i]; i--) {
       newArr.push(p);
    }
    return newArr.join("-");
}
var replaceValueInInputField = function(id) {
    var field = document.getElementById(id);
    field.value = revert(field.value);
}
var replaceValueInDomNode = function(id) {
    var el = document.getElementById(id);
    var value = el.innerHTML, newValue = '';
    var matches = value.match(/(\d{4})-(\d{2})\-(\d{2})/g);
    for(var i=0; m=matches[i]; i++) {
        value = value.replace(m, revert(m));
    }    
    el.innerHTML = value;
}

replaceValueInInputField("my-field");
replaceValueInDomNode("my-field2");

jsfiddle http://jsfiddle.net/qtDjF/2/

于 2013-09-02T12:54:22.840 回答
2

split('-')将返回一个数字字符串
reverse() 数组 将数组向后排序
join("-") 将使用“-”符号连接数组

var my_field_value = document.getElementById('my_field').value;
my_field_value.split('-').reverse().join("-");
于 2013-09-02T12:57:18.920 回答
0

您可以使用拆分功能。

var my_field = document.getElementById('my_field').split("-");

var my_field 将是一个字符串数组,例如:“YYYY,mm,dd”,然后您可以按照您想要的顺序重新排列它。

于 2013-09-02T12:55:54.123 回答
0

试试这个

var date =  document.getElementById("my-field").value;
//alert(date);
var sp = date.split("-");
alert(sp[2]+"-"+sp[1]+"-"+sp[0]);
于 2013-09-02T12:56:39.823 回答
0

使用 jQuery

var parts =$('#my-field').val().split("-");
$('#my-field').val(parts[2]+"-"+parts[1]+"-"+parts[0]);
于 2013-09-02T12:59:40.130 回答
0

简单的正则表达式:

var res;
test.replace(/(\d\d\d\d)-(\d\d)-(\d\d)/,function(all,a,b,c){res=c+"-"+b+"-"+a;});

JSFiddle:http: //jsfiddle.net/dzdA7/8/

于 2013-09-02T13:02:10.107 回答
0

您可以尝试将字符串拆分为数组并在循环中反转它的项目:

var my_field = document.getElementById('my_field').value.split("-"),
    length = my_field.length,
    date = [];

for(i = length - 1; i >= 0; i--){
    date.push(my_field[i]);
}

console.log(date.toString().replace(/,/g,"-"));
于 2013-09-02T13:04:39.670 回答