正则表达式,捕获组的问题

JS_weifeng 2017-02-23 10:06:49
var reg2=/(\d+)([\+\-\*\/])\1/
alert(reg2.test('25-25'))
为什么只有(相同数字相减或相加或相乘或相除)25-25的时候为true?
...全文
201 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ba12346 2017-03-01
  • 打赏
  • 举报
回复
js的正则表达式可以参考https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions 有比较详细的说明
  • 打赏
  • 举报
回复
var reg2=/(\d+)([\+\-\*\/])\1/; \1是对第一个捕获组内容的引用。也就是说,(\d+)匹配的的内容,在\1这个位置也要出现
天际的海浪 2017-02-23
  • 打赏
  • 举报
回复
\1 是重复第一个子匹配的结果,是结果。不是重复第一个子匹配的规则
燕云长风 2017-02-23
  • 打赏
  • 举报
回复
因为你的正则表达式中有\1,它表示获得和第一个分组的完全相同的内容,数字相同才会为true.

87,989

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧