JavaScript中的重复匹配

Mem*_*pan 1 javascript match

尝试在一个新匹配中使用匹配函数的结果时遇到问题.

这是代码:

<html>
<body>

<script type="text/javascript">

p="somelongtextmelongtextmelongtextmelongtext";

f1 = p.match(/some/g);

document.write(f1);

f2 = f1.match(/om/g);

document.write(f2);

</script>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

当输出必须为"om"时,输出为"some".我不明白这种行为,我需要在更复杂的情况下输出f1.

提前致谢.

dig*_*ath 6

你确定你粘贴了你正在测试的完全相同的代码吗?

我问因为f1 = p.match(/some/g);返回一个匹配数组,并且该Array对象没有.match方法,所以f1.match(/om/g);应该抛出一个错误.

无论如何,正确的方法是:

p="somelongtextmelongtextmelongtextmelongtext";
f1 = p.match(/some/g);
if (f1) {
    f2 = f1[0].match(/om/g);
    console.log(f2);
}
Run Code Online (Sandbox Code Playgroud)