自从我开始写这个问题以来,我想我已经找到了我遇到的每个问题的答案,但我想我还是会发布,因为它可能对其他人有用并且更多的澄清可能会有所帮助。
我试图将正则表达式与 javascript 函数拆分一起使用。由于某种原因,即使在我调用 match 时它找到了匹配项,它也没有拆分字符串。我最初认为问题出在我的正则表达式中使用前瞻。这是一个简化的示例:
不起作用:
"aaaaBaaaa".split("(?=B).");
作品:
"aaaaBaaaa".match("(?=B).");
看来问题是在拆分示例中,传递的字符串没有被解释为正则表达式。使用正斜杠而不是引号似乎可以解决问题。
"aaaaBaaaa".split(/(?=B)./);
我用下面这个看起来很傻的例子证实了我的理论:
"aaaaaaaa(?=B).aaaaaaa".split("(?=B).");
有没有人认为 match 函数假设你有一个正则表达式而 split 函数没有这很奇怪?