javascript - 使用javascript提取字符串的特定部分

标签 javascript regex parsing

首先,我知道之前已经有人问过很多这样的问题,但我很难理解正则表达式,所以如果可以的话请尝试解释一下。

我有一个不断变化的字符串,它是:TOKEN (SwapToken) - 1005.00000127 TOKEN

只有数字会发生变化,它可以小到 1005.000001281500.001,并且我创建了一个程序来在需要时提取字符串。唯一的问题是,我只需要隔离/提取数字,或者提取字符串,然后创建另一个仅包含数字的变量。

编码看起来会不会因为数字可能会发生变化而有所不同?我怎样才能完成只提取数字? Regex 是最好的选择吗,我知道可能还有其他一些选择。

谢谢

最佳答案

这是一个您可以使用的简单正则表达式

/\d+\.\d+/g

尽管它对您的输入做出了假设。主要是它里面没有其他东西看起来像十进制数。

\d 表示任何数字 (0 - 9)
\.表示文字句点 (.)
+ 表示一个或多个前面的字符

您需要反斜杠,因为在正则表达式中 a .意味着匹配任何字符,所以你必须转义它。

这个特殊的正则表达式通过查找看起来像一个或多个数字后跟“.”的任何东西来找到任何看起来像十进制数的东西。后跟一位或多位数字。

let str = "TOKEN (SwapToken) - 1005.00000127 TOKEN"

let num = str.match(/\d+\.\d+/g)[0];

console.log(parseFloat(num))

这是一个可以测试正则表达式的网站。它有一些简洁的功能。并解释你的正则表达式在右侧做什么

https://regex101.com/r/8RuY3A/1

关于javascript - 使用javascript提取字符串的特定部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45154367/

相关文章:

javascript - 用数组中的元素替换字符 "* "的实例 - JavaScript

javascript - 如何在没有jquery的情况下从ajax responseText中获取html元素的数据

javascript - 可扩展应用程序的 CORS 问题

java - 正则表达式匹配句点但如果两边都有句点则不匹配(Java)

javascript - 导出默认 react 而不提及冗余类

c# - 如何用正则表达式替换匹配的组值

c++ - 如何用C++读取CSV文件

python - 使用 BeautifulSoup4 和 Python 3.3 解析错误

jquery - 如何使用 jquery 解析 json 数组中的结构化数据?

java - 为什么 Mattcher 在成功找到后会抛出异常