我有一个要使用 javascript 解析的字符串。字符串内容是
2013 年 4 月 2 日星期二 13:36:56 GMT -0500(中部夏令时间)
我需要让javascript“在开括号后获取单词”(在本例中为“Central”)。
我似乎无法弄清楚它的javascript代码。任何建议表示赞赏。
我有一个要使用 javascript 解析的字符串。字符串内容是
2013 年 4 月 2 日星期二 13:36:56 GMT -0500(中部夏令时间)
我需要让javascript“在开括号后获取单词”(在本例中为“Central”)。
我似乎无法弄清楚它的javascript代码。任何建议表示赞赏。
使用正则表达式,您可以使用:
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”。
使用 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));
我同意 - 正则表达式是一种方式(特别是它是优雅的):
<string>.replace(/.*\(([^\s]*)\s.*/,'$1');
(nb会有更优雅的正则表达式)
干杯。