No.1
获取字符串中的数字字符,并以数组形式输出。如:12ak3222ljfl444223ql99kmf678,输出:[12, 3222, 444223, 99, 678]。
思路:
要求是找字符串的数字,那么正则查找数字的方法是:\d,可是如果只是使用\d的话,输出的结果肯定不如人意。所以必须必须是全局查找,所以此时的正则应该是长这样:/\d/g,但是这样输出的结果还是不如人意啊,因为每查找到一个数字,就会匹配一次,而要求是找到字符串里面连续出现的数字为一个匹配项,那就是说如果出现至少一次的就要匹配,个数的上限没有限制,那这样的话就很好办了,正则的量词:n+刚好可以满足要求,所以最后的正则应该是这样的:/\d+/g。现在正则有了,那就使用match方法来查找符合正则表达式的字符,match返回的是一个数组。我们还需要进一步把它改为数字类型的,这个步骤方法有很多,但是这里就使用数组的map方法,map返回的也是一个数组,参数的话,给一个Number方法就可以了,此时就完成了啊。完整列子如下demo:
let str = "12ak3222ljfl444223ql99kmf678";
let reg = /\d+/g;
let result = (str.match(reg)).map(Number);
console.log(result)