在 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. git保姆级入门(包含解决git仓库报错500的问题)
  2. python txt文件读写(追加、覆盖)
  3. 自动化部署之gitlab备份和恢复
  4. Spring之动态注册bean
  5. 这8款浏览器兼容性测试工具,用了以后测试效率可以“起飞”~~
  6. nova4e鸿蒙,为何如此执着麒麟芯片?华为首席战略官揭晓答案
  7. android 任务和进程,Android任务和进程,SingleTask和SingleInstance
  8. OpenAI发布DALL·E 2
  9. 菜鸟的Springboot学习日历(一)
  10. 路径规划——CH算法
  11. PostgreSQL的MVCC
  12. idea中js函数中使用EL表达式报错expression expected以及参数underfined的问题.md
  13. 数据结构溢彩加强版——(二)算法篇
  14. AD转换 ADC设计
  15. 开关二极管和肖特基二极管比较
  16. 地级市数字经济数据(变异系数法,主成分分析法,熵值法,整理好的面板数据)
  17. 在vue中应用ueditor引入秀米,支持图片以及背景图抓取
  18. python import自定义工具包
  19. 百度AI快车道系列课程最后一站,听技术大神细说模型“瘦身”小窍门
  20. 百合类游戏推荐その花びらにくちづけを花吻在上

热门文章

  1. 【CS224W】(task9)图神经网络的表示能力(GIN图同构模型)
  2. Android使用QQ第三方登录提示需要最新版问题的解决办法
  3. access查找楼号为01_二级ACCESS模拟001
  4. 太原网络营销师讲网络营销运营百度问答注意点?
  5. 旋翼机类毕业论文文献有哪些?
  6. 基于Python 爬虫+简单数据分析 附PPT
  7. java 生成8位随机密码
  8. HCNP——默认路由和浮动静态路由
  9. 网卡性能测试用什么软件,小巧好用的网络性能测试工具iPerf
  10. 02-JavaScript语言