【问题标题】:Split the date! (It's a string actually)分割日期! (实际上是一个字符串)
【发布时间】:2015-07-10 10:12:23
【问题描述】:

我想拆分这种字符串:

"14:30 - 19:30" or "14:30-19:30"

["14:30", "19:30"] 这样的 javascript 数组中

所以我有我的变量

var stringa = "14:30 - 19:30";
var stringes = [];

我应该使用正则表达式吗?我想我需要帮助

【问题讨论】:

  • 我只会在破折号上拆分并修剪结果...也许如果您不确定 stringa 是否遵循格式,请使用正则表达式进行测试...
  • var arr = stringa.split('-').map(function(x) { return x.trim()});
  • adeneo,由于某些原因,总是有一个大多数人没有的内联解决方案,哈哈。 +1

标签: javascript jquery arrays regex


【解决方案1】:

你可以使用str.split

var stringa = "14:30 - 19:30";
var res = str.split("-");

【讨论】:

    【解决方案2】:

    如果您知道唯一的'-' 将是分隔符,您可以从分割开始:

    let parts = input.split('-');
    

    如果你需要去掉它周围的空白,你应该修剪每个部分:

    parts = parts.map(function (it) { return it.trim(); });
    

    要验证这些部分,您可以使用正则表达式:

    parts = parts.filter(function (it) { return /^\d\d:\d\d$/.test(it); });
    

    综合:

    var input = "14:30 - 19:30";
    var parts = input.split('-').map(function(it) {
      return it.trim();
    }).filter(function(it) {
      return /^\d\d:\d\d$/.test(it);
    });
    
    document.getElementById('results').textContent = JSON.stringify(parts);
    <pre id="results"></pre>

    【讨论】:

      【解决方案3】:

      试试这个:

      var stringa = "14:30 - 19:30";
      var stringes = stringa.split("-");   // string is "14:30-19:30" this style
      
      or
      
      var stringes = stringa.split(" - "); // if string is "14:30 - 19:30"; style so it includes the spaces also around '-' character. 
      

      split 函数根据您在其中输入的子字符串的位置将字符串拆分为子字符串“-”

      。第一个根据“-”的位置将其拆分,第二个还包括空格“-”。

      *它看起来更像是 24 小时制时间格式,而不是您在问题中提到的数据。

      【讨论】:

        【解决方案4】:
        var stringa = '14:30 - 19:30';
        var stringes = stringa.split("-");
        

        【讨论】:

          【解决方案5】:

          .split 可能是最好的方法,尽管您需要先准备字符串。我会选择str.replace(/\s*-\s*/g, '-').split('-')。演示:

          var str = "14:30 - 19:30"
          var str2 = "14:30-19:30"
          console.log(str.replace(/\s*-\s*/g, '-').split('-')) //outputs ["14:30", "19:30"]
          console.log(str2 .replace(/\s*-\s*/g, '-').split('-')) //outputs ["14:30", "19:30"]
          

          【讨论】:

            【解决方案6】:

            别忘了你可以将RegExp 传递给str.split

            '14:30 - 19:30'.split(/\s*-\s*/); // ["14:30", "19:30"]
            '14:30-19:30'.split(/\s*-\s*/); // ["14:30", "19:30"]
            

            【讨论】:

              猜你喜欢
              • 2016-12-17
              • 2021-12-27
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2014-02-02
              • 2014-12-11
              • 2021-07-04
              • 1970-01-01
              相关资源
              最近更新 更多