js的replace怎么只执行一次 ?

let str = "aa22cs3333sdsa42sda12";
let arr = [];
str.replace(/\d+/g, (match) => {
  arr.push(match);
});
let max = Math.max(...arr);
console.log("max", max);
console.log("arr", arr);

replace中的函数执行了多次, 我现在只希望全匹配完了再执行, 并且将匹配的内容给到我

阅读 1.7k
3 个回答
const str = "aa22cs3333sdsa42sda12";
const matchs = str.match(/\d+/g);
console.log(matchs);

image.png

匹配元素返回给你可以如边城大佬这样使用 match 也可以通过每次循环的时候把匹配项 push 到一个外部数组当中。
然后全部匹配完了再执行的话,其实和单独执行没有什么区别。如果说你想要先取到里面的最大值然后再去做赋值的话,那就只能先匹配出来,然后再做 replace 了。

这样来也可以,仅提供方法参考

const str = 'aa22cs3333sdsa42sda12'.replace(/[A-Za-z]{1,}/g, ' ')
console.log(str, str.trim().split(' '))
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏