我有一个字符串,我想用javascript解析。字符串内容是
2013年4月2日星期二13:36:56 GMT -0500(中部夏令时)
我需要让javascript“在打开括号后获取单词”(在本例中为“Central”)。
我似乎无法弄清楚javascript代码。任何建议都表示赞赏。
答案 0 :(得分: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);
DEMO: http://jsfiddle.net/BzxtY/
由于您需要特定字词,因此您需要使用matching[1]
来获取匹配的特定字词。当然,匹配可能为null
,因此您可能需要先检查一下。如果您确定此正则表达式匹配,请不要打扰:)
要打破它:
\(
- 从(
(
- (匹配组的开头)
[A-Za-z0-9]+
- 包含A-Z,a-z,0-9中的至少一个
)
- (匹配组的结尾)
[ )]
- 以(空格)或
)
最后一部分应匹配()
中的单个单词或多个单词(并且只能获得第一个,如您所愿)。例如在“(中央夏令时)”中匹配“中心”或在“(测试)”中匹配“测试”。
答案 1 :(得分:2)
试试这个,
var xStr="Tue Apr 02 2013 13:36:56 GMT -0500 (Central Daylight Time)"
alert(xStr.substring(xStr.indexOf("(")+1).split(" ")[0]);
答案 2 :(得分:1)
使用indexOf()获取第一个paren的索引。一旦你拥有了它,那么将所有角色都带到下一个空间。
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));
答案 3 :(得分:0)
我同意 - 正则表达方式(尤其是优雅):
<string>.replace(/.*\(([^\s]*)\s.*/,'$1');
(n.b。将为此更优雅的正则表达式)
干杯。