【问题标题】:Subtracting two text variables减去两个文本变量
【发布时间】:2016-08-16 11:40:05
【问题描述】:

我有三个变量:

主字符串:

The quick brown fox jumps over the lazy dog.

第一个子字符串:

over the lazy dog.

第二个子字符串:

the lazy dog.

我试图通过从第二个字符串中减去第一个字符串来隔离单词“over”。

编辑:

通过取长字符串的长度并从第二个字符串的长度中减去它来解决。然后将该值用作第一个字符串的子字符串。

【问题讨论】:

  • 您究竟是如何知道21-12 的长度,却不知道您要查找的字符串的长度?
  • 如何将字符串拆分为组件(使用速度作为分隔符)并重建两部分?这只有在您预先知道字符串的基本结构(即字段数、它们的顺序和含义)时才有效。

标签: javascript string substring


【解决方案1】:

您可以将第一个空格之后的所有内容与/\s+(.*)/ 匹配:

var s = "CAVOK 18/13 Q1025";
var m = s.match(/\s+(.*)/);
if (m) {
  console.log(m[1]);
}

模式详情

  • \s+ - 1 个或多个空格(将匹配第一个空格)
  • (.*) - 除 CR/LF 以外的零个或多个字符(该行的所有其余部分)。

【讨论】:

    【解决方案2】:

    你可以使用 substring(),因为你知道起始段长度和结束段长度。

    var metar = document.getElementById("metartext").innerHTML;
    var result = metar.substring(21, metar.length - 11);
    
    console.log(result);
    

    【讨论】:

      【解决方案3】:

      您可以在完整字符串上使用replace 方法并将输出替换为“”以获得结果

      var cloud = cloud1.replace(cloud2, "");
      

      【讨论】:

        【解决方案4】:

        这应该可行--

        var cloud1 = "CAVOK 18/13 Q1025";
        var cloud2 = "18/13 Q1025";
        
        var result = cloud1.replace(' '+cloud2,'');
        
        console.log(result)

        代码将 cloud1 中与 cloud2 匹配的部分替换为空。因此,您只剩下第一位。

        【讨论】:

          【解决方案5】:

          您可以使用正则表达式从原始字符串中提取它。

          var metar = 'YSSY 161000Z 02007KT CAVOK 18/13 Q1025';
          var result = metar.match(/(?:.{20}\s)(\S*)(?:\s.{11})/)[1];
          
          console.log(result);

          【讨论】:

            【解决方案6】:

            您可以避免在Regular Expressions 中使用长度,并以“18/13”格式匹配日期之前的单词

            var metar = document.getElementById("metartext").innerHTML,
                result = /(\w+) [0-9]{2}\/[0-9]{2}/.exec(metar);
            
            result && console.log(result[1]); // CAVOK
            <p id="metartext">YSSY 161000Z 02007KT CAVOK 18/13 Q1025</p>

            【讨论】:

              猜你喜欢
              • 2013-04-20
              • 2012-01-13
              • 1970-01-01
              • 1970-01-01
              • 2013-02-24
              • 2017-05-18
              • 2015-05-03
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多