在javascript中搜索字符串

时间:2013-04-03 20:52:32

标签: javascript string substring

我有一个字符串,我想用javascript解析。字符串内容是

  

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

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

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

4 个答案:

答案 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]);

[使用的概念:substringindexOfsplit]

答案 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。为此更优雅的正则表达式)

干杯。