在Javascript中,如何将字符串的“标签”变为数组?

时间:2012-05-16 23:53:31

标签: javascript regex

The quick brown #fox jumped over the #reallyBigFence.

结果应为:['fox','reallyBigFence']

所有标签都是无空格的,它们以散列标签开头。

我是regex的新手,但我认为这样可行(不确定):/#([a-z0-9]+)/gi

该怎么办正则表达式? .match?

1 个答案:

答案 0 :(得分:2)

是的,只是.match()

var resultarray = "The quick brown #fox jumped over the #reallyBigFence."
   .match(/#([a-z0-9]+)/gi);

match方法将返回找到的子字符串数组(因为regexp具有全局标志),否则null如果找不到任何内容。然而,它返回完整匹配的字符串而不是捕获组,因此上面的结果将导致["#fox","#reallyBigFence"]。由于JavaScript不知道Lookbehind,您需要在

之后修复它
if (resultarray) // !== null
    for (var i=0; i<resultarray.length; i++)
        resultarray[i] = resultarray[i].substr(1); // remove leading "#"