【问题标题】:Search inside of a string in javascript在javascript中的字符串内部搜索
【发布时间】:2013-04-03 20:52:32
【问题描述】:

我有一个要使用 javascript 解析的字符串。字符串内容为

2013 年 4 月 2 日星期二 13:36:56 GMT -0500(中部夏令时间)

我需要获取 javascript 来“获取左括号后的单词”(在本例中为“Central”)。

我似乎无法弄清楚它的 javascript 代码。任何建议表示赞赏。

【问题讨论】:

标签: javascript string substring


【解决方案1】:

使用正则表达式,您可以使用:

var re = /\(([A-Za-z0-9]+)[ )]/;
var str = "Tue Apr 02 2013 13:36:56 GMT -0500 (Central Daylight Time)";
var matching = str.match(re);

演示: http://jsfiddle.net/BzxtY/

由于您想要特定的单词,您可以使用matching[1] 来匹配特定的单词。当然,匹配可能null,所以你可能想先检查一下。如果您确定此正则表达式会匹配,请不要打扰 :)

分解:

  • \( - 以(开头

  • ( - (匹配组的开始)

  • [A-Za-z0-9]+ - 包含 A-Z、a-z、0-9 中的至少一个

  • ) -(匹配组结束)

  • [ )] - 以(空格)或)结尾

最后一部分应该匹配() 中的单个单词或多个单词(并且只获取第一个,如您所愿)。比如匹配“(Central Daylight Time)”中的“Central”或者匹配“(Testing)”中的“Testing”。

【讨论】:

    【解决方案2】:

    试试这个,

    var xStr="Tue Apr 02 2013 13:36:56 GMT -0500 (Central Daylight Time)"
    alert(xStr.substring(xStr.indexOf("(")+1).split(" ")[0]);
    

    [使用的概念:substringindexOfsplit]

    【讨论】:

      【解决方案3】:

      使用 indexOf() 获取第一个括号的索引。一旦你有了它,然后将所有字符放到下一个空格。

      var str = "Tue Apr 02 2013 13:36:56 GMT -0500 (Central Daylight Time)";
      
      var parenIdx = str.indexOf('(') + 1;
      var result = str.substring(parenIdx, str.indexOf(' ', parenIdx));
      

      【讨论】:

        【解决方案4】:

        我同意 - 正则表达式是一种方式(尤其是它是优雅的):

        <string>.replace(/.*\(([^\s]*)\s.*/,'$1');
        

        (n.b. 为此提供更优雅的正则表达式)

        干杯。

        【讨论】:

          猜你喜欢
          • 2023-02-02
          • 1970-01-01
          • 2019-05-12
          • 2013-04-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-12-18
          相关资源
          最近更新 更多