简单的javascript正则表达式提取一个以字母开头和结尾的部分

时间:2013-01-09 13:02:23

标签: javascript regex

我正在尝试让此正则表达式返回,并且只返回"flies a"

s = 'test <!-- flies are little birds --> end';
alert(s.match(/f(.*)a/));

为什么会返回

flies a
lies

我如何制作f和强制性的?

谢谢

3 个答案:

答案 0 :(得分:4)

.match返回一个数组。第一个元素是整个匹配的文本,而每个其他元素是捕获组的内容。您有一个捕获组,因此第二个元素是它捕获的文本。

删除组或忽略数组中的其他元素。在任何情况下你都必须访问第一个:

var match = s.match(/f(.*)a/)[0]; // or /f.*a/

P.S。:alert是一个糟糕的调试工具,请改用console.logconsole.dir

答案 1 :(得分:2)

请勿放入括号内。

alert(s.match(/f.*a/));

括号创建一个捕获组,可让您指定您对匹配的特定部分感兴趣。在这种情况下,您对整个事情感兴趣,因此您不需要任何括号。

答案 2 :(得分:0)

只需删除括号或将整个表达式放入其他括号中:

s.match(/f.*a/)[0]; 要么 s.match(/(f(.*)a)/)[1];