jQuery拆分获取最后2位数字

时间:2018-12-31 11:55:31

标签: javascript

代码:

'2018-12-2417:25:33'.split('-');

输出:

["2018", "12", "2417:25:33"]

预期输出:

["2018", "12", "24"]

任何人都可以告诉我如何达到预期的输出量吗?

5 个答案:

答案 0 :(得分:5)

您可以使用正则表达式模式/^\d{4}-\d{2}-\d{2}/进行操作,然后使用-进行拆分。

let str = "2018-12-2417:25:33"

let op = str.match(/^\d{4}-\d{2}-\d{2}/)[0].split('-')

console.log(op);

我假设您要匹配1111-11-11之类的标准格式,否则可以用此\d+-\d+-\d{1,2}替换上述正则表达式

答案 1 :(得分:1)

{
  "title": "foo",
  "body": "bar",
  "userId": 1,
  "id": 101
}  

答案 2 :(得分:1)

该代码按照您的要求工作,假设您以某种方式将日期和时间代码混在一起...因此该时间代码也将包含8个字符。

我将看看您是如何创建此字符串的,您确实应该能够在代码的前面将日期和时间值彼此分开,并避免这种讨厌的攻击。<​​/ p>


演示

$(document).on("change keyup paste click", "#dateTime", function() {

  var dateTime = $(this).val();

  // Split on '-'
  var el = dateTime.split('-');

  // Remove the time - we know rimes will always be entered as 'xx:xx:xx' - i.e. 8 characters
  el[2] = el[2].substring(0, el[2].length - 8);

  // Print to console
  $("#dateOutput").text( el );

});

$("#dateTime").click();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<p>You can test out the function below</p>
<p>Remember that it expects an eight character time string at the end of the string</p>
<input id="dateTime" value="2018-12-2417:25:33">
<p id="dateOutput"></p>

答案 3 :(得分:1)

尝试一下:

var date = '2018-12-2417:25:33'.split(':');
date[0].split('-');

答案 4 :(得分:1)

您可以先将相关部分切成薄片,然后将字符串分成几部分。

var string = '2018-12-2417:25:33',
    result = string.slice(0, 10).split('-');

console.log(result);