Javascript:如何重新安排文本字段的内容显示?
我有一个文本字段(不是日期字段),它只包含一个值,比如“2013-08-27”,我的目标是颠倒顺序,得到“27-08-2013”。因此,重新安排内容很重要,但我没有足够的javascript知识。我尝试使用一些“日期”变量,但没有成功,很可能是因为我的字段不是日期字段 与该字段相关的html如下所示: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:我无法访
<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,"-"));
除了选择字段,您还做了什么?我相信,如果你付出一点努力,你会发现如何做到这一点。除了选择领域,你还做了什么?我相信,如果你付出一点努力,你会发现如何做到这一点。你的代码运行良好:-)。然而,我刚刚注意到,在另一个区域,该值与以前一样。代码如下所示: