首先,我知道之前已经有人问过很多这样的问题,但我很难理解正则表达式,所以如果可以的话请尝试解释一下。
我有一个不断变化的字符串,它是:TOKEN (SwapToken) - 1005.00000127 TOKEN
只有数字会发生变化,它可以小到 1005.00000128
或 1500.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))
这是一个可以测试正则表达式的网站。它有一些简洁的功能。并解释你的正则表达式在右侧做什么
关于javascript - 使用javascript提取字符串的特定部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45154367/