提取数字——字符串、正则面试题

提取数字——字符串、正则面试题

HTML5学堂:正则、数组、字符串,是JavaScript语言中让人头痛的一些知识,今天这篇文章我们使用数组字符串、正则两种方法,来实现从一个字符串中提取数字的功能,并将提出出来的数字作为一个数组返回。

提取字符串中的数组

将一个字符串中的数字提取出来,再有多个连续的数字组合为一个数组。例如:将hyoga3476H5course75,提取组合成:[3476, 5, 75]

题目剖析

字符串方法的解题思路:从字符串的第一位开始进行检测,查看是否是介于数字之间,如果是的话,则将组接字符串,当没有数字再出现的时候,将组接好的数字字符串,作为一个数组元素添加到数组当中。需要有一个地方进行处理,即如果最后一位是数字,这种情况下,需要进行再次检测。

相关知识点的使用:字符串方面,需要使用到charAt、push方法;正则方面,需要使用到match方法。

字符串方法 - 提取字符串中的数组

var str = 'hyoga3476H5course75';
var arr = [];
var substr = '';
for (var i = 0; i < str.length; i++) {
    if (str.charAt(i)>='0' && str.charAt(i)<=9) {
        substr += str.charAt(i);
    }else{
        if (substr!='') {
            arr.push(substr);
            substr = '';
        };
    }
};
// 防止最后一位为数字,而上面的for循环无法实现
if (substr!='') {
    arr.push(substr);
    substr = '';
};
console.log(arr);

正则方法 - 提取字符串中的数组

var str = 'hyoga3476H5course75';
var reg = /\d+/g;
str = str.match(reg);
console.log(str);

原文发布于微信公众号 - HTML5学堂(h5course-com)

原文发表时间:2015-10-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏深度学习与计算机视觉

算法-删除字符串中的公共字符

题目: 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入“They are students.”和”aeiou”,则删除之后的第一个字...

2056
来自专栏程序员互动联盟

【编程基础】C++比C牛逼的七个点

1. 函数检测增强 ? 在C语言中,重复定义多个同名的全局变量是合法的,在C++中,不允许定义多个同名的全局变量。 C语言中多个同名的全局变量最终会被链接到全局...

3315
来自专栏数据小魔方

左手用R右手Python系列之——迭代器与迭代对象

接触过Python的小伙伴儿肯定都知道,Python中关于迭代器和可迭代对象运用的很广泛。迭代器可以以一种非常友好的方式使用在循环中,不仅节省内存,还能优化代码...

3708
来自专栏Micro_awake web

es6(二):解构赋值

ES中允许按照一定格式从数组,对象值提取值,对变量进行赋值,这就是解构(Destructuring) 1 let [a,b,c]=[1,10,100] 2 ...

1985
来自专栏desperate633

LintCode 合并排序数组 II题目代码

合并两个排序的整数数组A和B变成一个新的数组。 注意事项 你可以假设A具有足够的空间(A数组的大小大于或等于m+n)去添加B中的元素。

522
来自专栏菩提树下的杨过

python:函数的高级特性

1853
来自专栏平凡文摘

7大经典的排序算法总结实现

1302
来自专栏IT可乐

Java数据结构和算法(九)——高级排序

  春晚好看吗?不存在的!!!   在Java数据结构和算法(三)——冒泡、选择、插入排序算法中我们介绍了三种简单的排序算法,它们的时间复杂度大O表示法都是O(...

3706
来自专栏小詹同学

Leetcode打卡 | No.19 删除链表的倒数第N个节点

之前我们说过 C 和 C++ 中的指针是个好东西 ,在解决这类问题很是方便 。然而 python 是没有这个概念的 ,包括链表也是模拟链表的相关操作 。刷题到这...

1162
来自专栏我的博客

选择排序

分类: 选择排序(选择排序,堆排序,平滑排序,笛卡尔树排序,锦标赛排序,圈排序) 思想: 1、从左至右遍历,找到最小(大)的元素,然后与第一个元素交换。 2、从...

3228

扫码关注云+社区