在 JavaScript 中,有多种方法可以从字符串中提取数字。一种方法是使用 match() 方法和正则表达式来搜索字符串中的所有数字。另一种方法是使用 replace() 方法和正则表达式从字符串中删除所有非数字字符,只留下数字。

让我们借助一些示例来了解每种方法。

使用 match() 方法和正则表达式

正则表达式是一种搜索模式,我们可以通过组合多个字母和特殊字符来创建。我们可以对字符串中的数字使用 '/\d+/' 搜索模式。在“\d+”搜索模式中,d 表示 0 到 9 之间的数字,“+”表示找到至少一个数字。

因此,我们可以使用该正则表达式作为 JavaScript 内置匹配方法的参数来搜索给定字符串中的所有数字。

语法

用户可以按照以下语法从给定字符串中提取所有数字。

let str = "Sampll323435 Stringrfd23232ftesd3454!";
let numbers = str.match('/\d+/');

在上面的语法中,我们使用了 match() 方法,该方法匹配给定字符串中数字的出现次数。

在此示例中,我们创建了包含数字的字符串。之后,我们创建了带有 g 标志的正则表达式来匹配字符串中出现的所有数字,并将其作为 match() 方法的参数传递以在字符串中匹配

match() 方法根据正则表达式匹配返回包含所有数字的数组。


<html> <body> <h3>Using the <i> match () </i> Method and Regular Expression to extract the numbers from the string</h3> <div id = "output"> </div> <script> let output = document.getElementById("output"); // defining the string containing the numbers let str = "Sampll323435 Stringrfd23232ftesd3454!"; output.innerHTML = "Original String: " + str + "<br/>"; // Matching for the numbers using the match() method. let numbers = str.match(/\d+/g); // numbers is an array of all occurrences of numbers // if any single number is available in the string, then print numbers if (numbers.length > 0) { output.innerHTML += "<br> Numbers in the StringL: " + numbers + "<br/>"; } </script> </body> </html>

使用 replace() 方法和正则表达式

我们可以使用正则表达式来识别数字字符和其他字符。因此,我们将使用正则表达式标识其他字符并将其替换为空字符串。通过这种方式,我们可以删除除数字以外的所有字符并从字符串中提取数字。

语法

用户可以按照以下语法使用 replace() 方法从字符串中提取数字。

let result = str.replace(/[^0-9]/g,"");

在上面的语法中,str 是一个引用字符串,我们想从中提取一个数字。此外,正则表达式 [^0-9] 表示不介于 0 和 9 之间的所有字符。

在下面的示例中,我们使用 replace() 方法将所有字符替换为除数字字符之外的空字符串。我们将正则表达式作为第一个参数传递,将空字符串作为第二个参数传递。

replace() 方法在将除数字字符以外的所有字符替换为空字符串后返回字符串。在输出中,我们可以观察到它不像 match() 方法那样返回数组,而是只返回一个字符串。


<html> <body> <h3>Using the <i> replace() </i> method and regular expression to extract the numbers from the string</h3> <div id = "output"> </div> <script> let output = document.getElementById("output"); let string = "dnbdj53454 4k54k6j23in k09e30n9923g9 kjm545"; output.innerHTML = "Original String: " + string + "<br/>"; // replace all non-numeric characters with empty string let result = string.replace(/[^0-9]/g, ""); output.innerHTML +="<br> Numbers in the string: " + result + "<br/>"; </script> </body> </html>

使用 reduce() 方法从字符串中提取数字

reduce() 是 JavaScript 的内置库方法。我们可以将字符串转换为字符数组,并将 reduce() 方法与字符的数组一起使用。reduce() 方法通过对数组元素执行操作来帮助我们将数组减少为单个元素。

在这里,我们将检查字符是否为数字并将其添加到最终元素中;否则,我们将添加一个空字符串。

语法

用户可以按照以下语法使用 reduce() 方法从字符串中提取数字。

let charArray = [...string];
let numbers = charArray.reduce(function (numString, element) {let nums = "0123456789";if (nums.includes(element)) {return numString + element;}return numString;
},"");

在上面的语法中,我们将reduce方法与charArray一起使用。我们已将回调函数作为第一个参数传递,将空字符串作为第二个参数传递。

算法

  • 步骤 1 − 使用扩展运算符将字符串转换为字符数组。

  • 步骤 2 - 将 reduce() 方法与 charArray 一起使用,将整个数组简化为仅包含数字的单个字符串。

  • 步骤 3 − 将回调函数作为 reduce() 方法的第一个参数传递,该方法返回缩减的字符串

  • 步骤 4 − 在回调函数中,将 numString 作为第一个参数传递,这是一个简化的字符串,元素作为第二个参数传递,这是一个数组元素,表示字符串的字符。

  • 步骤 5 − 在回调函数中,检查数组的字符是否意味着元素介于 0 和 9 之间。如果是这样,请在 numString 中添加该字符并返回它;否则,按原样返回 numString。

  • 步骤 6 − 作为 reduce() 方法的第二个参数,传递一个空字符串,这是 numString 的初始值。

  • 步骤 7 − 在数组的完整迭代之后,reduce() 方法返回 numString 的最终值。

在下面的示例中,我们获取了一个包含数字的字符串,并实现了上述算法从字符串中提取数字。


<html> <body> <h3>Using the <i>reduce() </i>method to extract the numbers from the string</h3> <div id = "output"> </div> <script> let output = document.getElementById("output"); let string = "34gr345fr45"; output.innerHTML += "Original String: " + string + "<br/>"; let charArray = [...string]; let numbers = charArray.reduce(function (numString, element) { let nums = "0123456789"; if (nums.includes(element)) { return numString + element; } return numString; }, ""); output.innerHTML +="<br> Number in the String: " + numbers + "<br/>"; </script> </body> </html>

在本教程中,我们讨论了从给定字符串中提取数字的三种方法。第一种方法是使用 match() 方法和正则表达式来搜索字符串中的所有数字。第二种方法使用 replace() 方法和正则表达式从字符串中删除所有非数字字符,只留下数字。第三种方法是使用 reduce() 和 include() 方法。仔细考虑哪种方法最适合给定情况非常重要。

使用 JavaScript 从字符串中提取数字相关推荐

  1. java从字符串中提取数字

    1.做一下操作时会一般会用到提取数字操纵: a.列表中有翻页,当新添加的数据不是放在第一条或者最后一条时,需要翻页并循环找到对应的那条数据 b.当新添加的数据放在第一条或者最后一条时,则不需要翻页,只 ...

  2. 【转】SQL函数:字符串中提取数字,英文,中文,过滤重复字符

    SQL函数:字符串中提取数字,英文,中文,过滤重复字符 --提取数字 IF OBJECT_ID('DBO.GET_NUMBER') IS NOT NULL DROP FUNCTION DBO.GET_ ...

  3. python正则表达式提取数字比较好_python正则表达式从字符串中提取数字的思路详解...

    python从字符串中提取数字 使用正则表达式,用法如下: ## 总结 ## ^ 匹配字符串的开始. ## $ 匹配字符串的结尾. ## \b 匹配一个单词的边界. ## \d 匹配任意数字. ## ...

  4. python 从字符串中提取数字 re.findall()

    以前老用(.*?)提取数字,今天发现不对了,比如一行数字为: 0 0.248438 0.255556 0.128125 0.194444 用: re.findall('(.*?) (.*?) (.*? ...

  5. 从字母数字字符串中提取数字

    http://office.microsoft.com/zh-cn/excel-help/HA001154901.aspx 本文的作者是 Ashish Mathur,是一位 Microsoft MVP ...

  6. 正则匹配——python用一个正则表达式从字符串中提取数字(包括整数、小数、正负数)

    import re# 从字符串中提取数字 totalCount = '-100,abc2.4-123s,d-1ds-0.234as123.2s1.3bb.24' count = re.findall( ...

  7. excel取末尾数字_Excel公式技巧11: 从字符串中提取数字——数字位于字符串末尾...

    excelperfect 上篇文章讲解了提取位于字符串开头的数字的公式技术,本文研究从字符串开头提取数字的技术: 1. 这些数字是连续的 2. 这些连续的数字位于字符串的末尾 3. 想要的结果是将这些 ...

  8. java 从字符串中提取数字

    /*** 从字符串中提取数字* @param string* @return*/public static double getNums(String string) {String str = &q ...

  9. java数字编程提,java从字符串中提取数字的简单实例

    随便给你一个含有数字的字符串,比如: String s="eert343dfg56756dtry66fggg89dfgf"; 那我们怎么把其中的数字提取出来呢?大致有以下几种方法, ...

最新文章

  1. js中表单验证常用到的正则表达式
  2. [BZOJ1097][POI2007]旅游景点atr
  3. P1352 没有上司的舞会
  4. uva 11080(二分图染色)
  5. [转] DevExpress 第三方控件汉化的全部代码和使用方法
  6. MSP430F5529 DriverLib 库函数学习笔记(十二)I2C实战
  7. flink sql设置并行度_Flink集成Hivestream模式用例
  8. git进入项目目录 windows_Windows下Git 怎么整个文件夹目录上传到代码仓库(不论GitHub、GitLab、Gitee、DevCloud)...
  9. Serverless,引领云计算下一个阶段
  10. Linux下配置简单的图形桌面环境
  11. chinaunix-索引资料
  12. 稳恒nb-iot模块WH-NB73 UDP透传和透传云使用说明
  13. Linux系统下载谷歌浏览器
  14. ioDraw - 好用的流程图绘制软件
  15. excel删除无尽空白行_「EXCEL」大量空白行如何删除?看我发大招
  16. 如何快速注册一个谷歌gmail邮箱(2021)
  17. Python网络爬虫之网络请求
  18. offset 和 零点的一点解释
  19. 迪士尼机器人芭蕾舞_两个自由度实现惊艳后空翻 迪士尼杂技机器人献拿手好戏...
  20. 笔记2 IKAnalyzer扩展词库

热门文章

  1. 改变快照内容php,PHP生成网页快照 代码
  2. c语言中的钩子函数,回调函数以及钩子函数的概念
  3. Windows 7下可以使用的各个命令语句+C#打开
  4. 网管工具——DataExplore数据恢复大师
  5. 【winxp技巧使用方法及特殊之处详解】
  6. Embedding 理解
  7. android记住密码
  8. 谈谈与Elasticsearch创始人Shay Banon面对面交流后的意外收获
  9. php 下载excel模板方法1
  10. 制作自己的ui组件库