正则表达式中的错误
A mistake in Regex
var text = "Price: 123 dollar."
text.replace(/(('d+'.?'d+?)|('d{1,3}(','d{3})+)) *([a-zA-Z]+)/, function(a,b,c){
document.write(a+" | "+b+" | "+c);
return;
}
现在的输出是:123美元|123|123
但我需要输出是:123 美元 | 123 | 美元
它适用于正则表达式/''b((?:''d+.(?''d+( *([a-zA-Z]+(/
想不通..为什么b和c是一样的?!
修复:解决方案是删除不必要的捕获组:
/((?:''d+.?''d+?(?:''d{1,3}(?:'',''d{3}(+((*([a-zA-Z]+(/
谢谢@Mythril和@cababunga
因为您创建了更多捕获组。这意味着替换函数的更多参数,请尝试以下操作:
var text = "Price: 123 dollar."
text.replace(/(('d+'.?'d+?)|('d{1,3}(','d{3})+)) *([a-zA-Z]+)/, function(a,b,c,d,e,f){
document.write(a+" | "+b+" | "+f);}
);
相关文章:
- 正则表达式给出错误的输出
- 正则表达式中的错误
- javascript使用正则表达式得到错误的结果
- 在正则表达式中添加 (?i) 会导致 javascript 中出现错误“无效的正则表达式组”
- Javascript错误正则表达式不是函数
- Javascript 正则表达式不会在应该给出错误消息时给出错误消息
- 即使验证正则表达式错误,也提交表单
- 用于匹配错误和关联几行的正则表达式
- 什么'用这个正则表达式查找URL是错误的
- 正则表达式仅在Javascript中存在语法错误
- javascript中正则表达式(match)中变量的使用错误
- 服务器错误消息的正确正则表达式
- 未终止的正则表达式文字 js 错误
- 为什么这个 JavaScript 正则表达式会给我一个语法错误
- javascript 错误:未定义 jQuery 和无效的正则表达式:缺少 /
- jQuery 正则表达式测试在 .each 错误中
- 正则表达式语法错误 - 无需重复
- 仅正则表达式 Nan 错误号
- javascript语法错误:正则表达式无效
- 带有浏览器.js的 Babel,获取未捕获的语法错误:正则表达式无效