0

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

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

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

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

4

4 回答 4

4

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

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]+- 包含 AZ、az、0-9 中的至少一个

  • )- (匹配组结束)

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

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

于 2013-04-03T21:10:35.867 回答
2

试试这个,

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

[使用的概念:substringindexOfsplit ]

于 2013-04-03T20:56:48.210 回答
1

使用 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));
于 2013-04-03T20:55:05.117 回答
0

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

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

(nb会有更优雅的正则表达式)

干杯。

于 2013-04-03T21:01:35.163 回答