首页 > 解决方案 > 为什么javascript中的这个正则表达式返回未定义?

问题描述

当我找到一个';'时,我试图拆分一个字符串 我的输入是'int':

var codigo="int a;float b,c;c=a*b;"

我试图使用的正则表达式是:

codigo=codigo.split(/(\b;)|(\bint)/)

我的输出是:

["", undefined, "int", " a", ";", undefined, "float b,c", ";", undefined, "c=a*b", ";", undefined, ""]

标签: javascriptregex

解决方案


我相信这是因为您有两个捕获组,JavaScript 必须在输出数组中保留两个位置以进行匹配。但是,由于 RegEx 的编写方式,这些捕获组中只有一个匹配。我认为如果您将捕获组组合成一个捕获组,则undefined s 应该消失:

codigo=codigo.split(/(\b;|\bint)/)

推荐阅读