Js中正则表达式 多行模式下的疑问
const str = `dasd djsai hf cdu
dja cjsi aerhu chdu
xia deji cjxi asj
`;
const reg = /^.*$/gm;
reg.exec(str);
重复执行reg.exec(str)
都是返回一个结果
按照我的理解,.
不匹配换行符,应该依次输出dasd djsai hf cdu、dja cjsi aerhu chdu、xia deji cjxi asj。
那么为什么会发生如图所示的情况呢?
回答
这是因为你的正则^.*$
在你的文本中,多行模式下匹配到的第一个结果是一个位置,由于此时的lastIndex是0,下次开始还是从这个位置匹配,因此又匹配到了这个位置。你如果把正则改为^.+$
,就正常了,因为这个正则不会匹配位置
以上是 Js中正则表达式 多行模式下的疑问 的全部内容, 来源链接: utcz.com/a/40105.html