Javascript 或者交替使用正则表达式会返回比它应该返回的结果更多的结果?
代码是从中修改的 单击按钮以全局搜索任何指定的红色|绿色备选方案 试试看 函数myFunction{ var str=re、绿色、红色、绿色、灰色、绿色、蓝色、黄色; 变量patt1=/蓝色|红色/; var result=str.matchpatt1; document.getElementByIddemo.innerHTML=结果; } 您不应该使用对备选方案有效的捕获组。从正则表达式中删除 改变Javascript 或者交替使用正则表达式会返回比它应该返回的结果更多的结果?,javascript,regex,Javascript,Regex,代码是从中修改的 单击按钮以全局搜索任何指定的红色|绿色备选方案 试试看 函数myFunction{ var str=re、绿色、红色、绿色、灰色、绿色、蓝色、黄色; 变量patt1=/蓝色|红色/; var result=str.matchpatt1; document.getElementByIddemo.innerHTML=结果; } 您不应该使用对备选方案有效的捕获组。从正则表达式中删除 改变 var patt1 = /(blue|red)/; 到 单击按钮以全局搜索任何指定的红
var patt1 = /(blue|red)/;
到
单击按钮以全局搜索任何指定的红色|绿色备选方案
试试看
函数myFunction{
var str=re、绿色、红色、绿色、灰色、绿色、蓝色、黄色;
变量patt1=/蓝色|红色/;
var result=str.matchpatt1;
document.getElementByIddemo.innerHTML=结果;
}
您不应该使用对备选方案有效的捕获组。从正则表达式中删除
改变
var patt1 = /(blue|red)/;
到
单击按钮以全局搜索任何指定的红色|绿色备选方案
试试看
函数myFunction{
var str=re、绿色、红色、绿色、灰色、绿色、蓝色、黄色;
变量patt1=/蓝色|红色/;
var result=str.matchpatt1;
document.getElementByIddemo.innerHTML=结果;
}
因为您在regexp中使用组,所以match retunrns将字符串和group so数组与两个相同的元素相匹配。使用/blue | red/g代替g使匹配在findig第一次匹配后继续搜索 函数myFunction{ var str=re、绿色、红色、绿色、灰色、绿色、蓝色、黄色; var patt1=/blue | red/g; var result=str.matchpatt1; demo.innerHTML=结果; } 单击按钮以全局搜索任何指定的红色|绿色备选方案 试试看
因为您在regexp中使用了组,所以match retunrns将字符串和group so数组与两个相同的元素相匹配。使用/blue | red/g代替g使匹配在findig第一次匹配后继续搜索 函数myFunction{ var str=re、绿色、红色、绿色、灰色、绿色、蓝色、黄色; var patt1=/blue | red/g; var result=str.matchpatt1; demo.innerHTML=结果; } 单击按钮以全局搜索任何指定的红色|绿色备选方案 试试看
/blue | red/g我猜/blue | red/g我猜你能告诉我为什么需要删除吗?我学到的格式是JavaScript正则表达式x | y表达式?非常感谢@user18481,捕获组,该组在本例中不适用的替代方案上工作…您能告诉我为什么需要删除吗?我学到的格式是JavaScript正则表达式x | y表达式?非常感谢@user18481,捕获组,该组处理在本例中您不需要的备选方案…请您告诉我为什么需要添加全局匹配。如果没有/g,它将在第一场比赛后停止。所以它应该返回'red'@user18481,这取决于你需要什么-如果你只想得到第一个匹配,然后删除g,如果你想得到全部而不是删除它,你能告诉我为什么我需要添加全局匹配吗。如果没有/g,它将在第一场比赛后停止。所以它应该返回'red'@user18481,这取决于你需要什么-如果你只想得到第一个匹配,然后删除g,如果你想得到所有,不要删除它