检索字符串Javascript的子集

时间:2016-12-13 13:42:27

标签: javascript string replace

我有以下刺痛:

2016-12-13T14:31:00+0100

我想只有

14:31:00

我用

尝试了
replace("*/T.*/+", "");

但这不起作用。

现在有人如何正确设置Javascript的替换功能?

6 个答案:

答案 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);