当前位置: 首页 > news >正文

Js 字符串中提取数字

一 parseInt()方法:

         首先想到的是js提供的parseInt方法,例子:

        

    var str ="4500元";

    var num = parseInt(str);

    alert(num);//4500   

 

        结果就是我们想要的, 以为就这么简单,那就错了。如果字符串前面有非数字字符,上面这种方法就不行了:

         

    var str ="价格:4500元";

    var num = parseInt(str);

        

    alert(num);//NaN

 

 

         这个例子中会弹出NaN,解决这个问题,最简单的方法是:如果知道字符串格式后,去掉前面的非字符。上面这个例子中,去掉子串"价格:"

         

    var str ="价格:4500元";

    var num = parseInt(str.substring(1).substring(1).substring(1));

        

    alert(num);//4500  

 

         显然,这样就显得比较麻烦了。另外,java语言中也有parseInt()方法,里面传的字符串中只要有非数字,myeclipse就会提示错误。Js中的parseInt()方法传的可以有非数字字符串,只要字符串前面就照样运行,知道遇到非数字字符停下来。比如,以下这个例子。

      

    var str ="4500元,等级:2";

    var num = parseInt(str);

        

    alert(num);//4500

 

 

         不会报错,结果还是一样,因为系统查找到"元"时就停止了,不管后面有没有数字都不会再提取了。所以不会出现45002的结果。Js中有很多这样的例子,比如正则不写/g,默认查找符合的第一个子字符串就跳出,并不会往下面进行。本文第二个例子出现NaN,也是这个原因,请细细体会。

    关于parseInt()方法,还可以有第二个参数。第二个参数表示第一个参数的进制,看个例子:

   

    parseInt("11", 2); // 结果:3  如果想把一个二进制数字字符串转换成整数值,只要把第二个参数设置为 2 就可以了。

  后一个参数不写,默认按10进制转换。

  最后一个问题,parse函数是干嘛的?程序之间传递的都是字符串(文本类型),而使用时要转换成需要的类型。parse函数是把字符串转换成我们需要的类型,比如parseInt(),$.parseHTML()。

二、正则

         前面说到正则。事实上,正则处理起来就比较简单了,替换掉非数字的字符就可以了。例子:

     

    var s ="价格4500元";

    var num= s.replace(/[^0-9]/ig,"");

    alert(num);//4500

 

 

         如果遇到字符夹带数字的情况:

   

    var s ="价格4500元,等级:2";

    var num = s.replace(/[^0-9]/ig,"");

    alert(num);//45002

 

这个时候结果就是45002了。

转载于:https://www.cnblogs.com/xiaochongchong/p/5304909.html

相关文章:

  • 【Linux学习】Linux的文件权限(一)
  • 软件工程学生的编程能力与编程语言是中文或英文有关系吗?
  • WPF下载远程文件,并显示进度条和百分比
  • iptables练习题
  • SQL Server 用链接服务器 同步MySQL
  • 实现app上对csdn的文章查看,以及文章中图片的保存 (制作csdn app 完结篇)
  • Linq动态条件
  • 详解java1.5新添特性------注解
  • Windows下批量设置SVN用户组权限
  • windows中eclipse打开当前文件所在文件夹
  • Effective C++: auto类型推断.
  • 利用CSS-border属性实现圆饼图表
  • 大圣归来:我们心中缺少一份英雄主义
  • Java命令学习系列(7):Javap(转)
  • 用VS2010编C#程序扫盲
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • Bootstrap JS插件Alert源码分析
  • CSS魔法堂:Absolute Positioning就这个样
  • es6要点
  • mysql外键的使用
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • Python学习之路13-记分
  • Ruby 2.x 源代码分析:扩展 概述
  • scala基础语法(二)
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 给初学者:JavaScript 中数组操作注意点
  • 简单易用的leetcode开发测试工具(npm)
  • 今年的LC3大会没了?
  • 免费小说阅读小程序
  • 嵌入式文件系统
  • 如何设计一个比特币钱包服务
  • 使用Gradle第一次构建Java程序
  • 双管齐下,VMware的容器新战略
  • 探索 JS 中的模块化
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • 一些css基础学习笔记
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 优化 Vue 项目编译文件大小
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • ​决定德拉瓦州地区版图的关键历史事件
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • $refs 、$nextTic、动态组件、name的使用
  • ( 10 )MySQL中的外键
  • (Java数据结构)ArrayList
  • (独孤九剑)--文件系统
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .net core webapi 大文件上传到wwwroot文件夹
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .NET6 开发一个检查某些状态持续多长时间的类
  • @DateTimeFormat 和 @JsonFormat 注解详解