Javascript:如何重新安排文本字段的内容显示?

Javascript:如何重新安排文本字段的内容显示?,javascript,Javascript,我有一个文本字段(不是日期字段),它只包含一个值,比如“2013-08-27”,我的目标是颠倒顺序,得到“27-08-2013”。因此,重新安排内容很重要,但我没有足够的javascript知识。我尝试使用一些“日期”变量,但没有成功,很可能是因为我的字段不是日期字段 与该字段相关的html如下所示: <input type="text" value="2013-08-27" name="my_field" id="my-field" readonly=""> 谢谢 PS:我无法访

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

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

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


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

此代码应起到以下作用:

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");

jsFIDLE

这段代码应该可以实现以下功能:

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

您可以使用split函数

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

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

您可以使用拆分功能

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

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

试试这个

var date =  document.getElementById("my-field").value;
//alert(date);
var sp = date.split("-");
alert(sp[2]+"-"+sp[1]+"-"+sp[0]);
试试这个

var date =  document.getElementById("my-field").value;
//alert(date);
var sp = date.split("-");
alert(sp[2]+"-"+sp[1]+"-"+sp[0]);
split('-')
将返回一个数字字符串数组
reverse()
将数组向后排序
join(“-”)
将使用“-”符号将数组连接回

var my_field_value = document.getElementById('my_field').value;
my_field_value.split('-').reverse().join("-");
split('-')
将返回一个数字字符串数组
reverse()
将数组向后排序
join(“-”)
将使用“-”符号将数组连接回

var my_field_value = document.getElementById('my_field').value;
my_field_value.split('-').reverse().join("-");
使用Jquery

var parts =$('#my-field').val().split("-");
$('#my-field').val(parts[2]+"-"+parts[1]+"-"+parts[0]);
使用Jquery

var parts =$('#my-field').val().split("-");
$('#my-field').val(parts[2]+"-"+parts[1]+"-"+parts[0]);
简单正则表达式:

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

简单正则表达式:

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

jsIDLE:

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

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,"-"));

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

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-08-27
  • 。你认为这里也可以互动吗?已经完成了。我编辑了JSFIDLE->其思想是使用正则表达式匹配日期,然后使用相同的方法。我进行了测试,但不幸的是,这不起作用。我还失去了之前的技巧,之前的技巧效果很好:-(.你有其他建议吗?我应该看看你做了什么。我的意思是,如果你看看我的JSFIDLE,你会看到我是如何实现新代码的。你应该调用一个函数。它不会自动发生。问题是“my-field2”中出现的第二个值位于另一个我无法与JS交互的页面。这不是你的错。我会看看我是否能做些什么,但我怀疑。你的代码运行良好:-)。然而,我刚刚注意到,在另一个区域,该值与以前一样。代码如下所示:
  • 我的字段标签2013-08-27
  • 。你认为这里也可以互动吗?已经完成了。我编辑了JSFIDLE->其思想是使用正则表达式匹配日期,然后使用相同的方法。我进行了测试,但不幸的是,这不起作用。我还失去了之前的技巧,之前的技巧效果很好:-(.你有其他建议吗?我应该看看你做了什么。我的意思是,如果你看看我的JSFIDLE,你会看到我是如何实现新代码的。你应该调用一个函数。它不会自动发生。问题是“my-field2”中出现的第二个值位于另一个我无法与JS交互的页面。这不是你的错。我会看看我是否能做些什么,但我怀疑。