我有以下刺痛:
2016-12-13T14:31:00+0100
我想只有
14:31:00
我用
尝试了replace("*/T.*/+", "");
但这不起作用。
现在有人如何正确设置Javascript的替换功能?
答案 0 :(得分:1)
您可以将String.slice
与正确的参数一起用于标准ISO 6801组合的日期和时间字符串。
var string = '2016-12-13T14:31:00+0100',
time = string.slice(11, 19);
console.log(time);
答案 1 :(得分:0)
您可以捕获日期部分并将其替换为
str = "2016-12-13T14:31:00+0100".replace(/.*T(.*)\+.*/, '$1')
console.log(str)
// "14:31:00"
.*T
匹配T
(.*)\+
匹配任何内容直到下一个+
并在$1
如果您确定输入字符串,您甚至可以将字符串拆分为T
和+
"2016-12-13T14:31:00+0100".split(/[T+]/)[1]
// "14:31:00
答案 2 :(得分:0)
如果“T”和“+”始终存在,那很容易:
var split = "2016-12-13T14:31:00+0100".split ( "T" );
var final = split [ 1 ].split ( '+' ) [ 0 ];
如果这些不一致,那么你会做更多涉及的事情,可能是这样的:
var split = "2016-12-13T14:31:00+0100".split ( ':' );
var stringPart1 = split[0].substring ( split[0].length - 2 );
// We can just use split [ 1 ], the second part, as-is
var stringPart3 = split[2].split ( '+' ) [ 0 ];
var finalString = stringPart1 + ":" + split [ 1 ] + ":" + stringPart3;
检查它,两者都有效,你可以看到第二个例子如何让你适应不同的情况,你如何获得和格式化你的字符串部分。
请注意,切片似乎是一个好主意,但只有在字符串的长度始终一致时才会起作用。正则表达式也是可能的,但正则表达式对我来说可能是如此神秘,可能是我有一天应该补救的缺点。
答案 3 :(得分:0)
以下是使用replace
:
var s = "2016-12-13T14:31:00+0100";
var n = s.replace(/([\d\-]+T)|(\+\d+)/g, "");
console.log(n);

([\d\-]+T)
与日期匹配
(\+\d+)
与时区匹配
g
表示查找所有匹配项(全局)
答案 4 :(得分:0)
你可以试试这个
var s = "2016-12-13T14:31:00+0100"
var a = s.split(":")
a[0]= a[0].slice(a[0].length - 2)
a[2] = a[2].slice(0,2)
var res = a.join(":")
答案 5 :(得分:0)
您可能也喜欢
var res = "2016-12-13T14:31:00+0100".match(/[^T]+(?=\+)/)[0];
console.log(res);