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

Koo*_*ord 3 javascript regex parsing

首先,我知道很多像这样的问题之前已经被问过了,但是我很难将我的头脑包裹在正则表达式中,所以如果可以,请尽量解释一下.

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

只有数字发生了变化,它可能会变得很小1005.00000128或者变化1500.001,我创建了一个程序来在需要时提取字符串.唯一的事情是,我需要隔离/提取数字,或者可能提取字符串,然后创建另一个只包含数字的变量.

编码看起来会有所不同,因为这个数字会有变化吗?我怎么能完成只提取数字?正则表达式是最好的选择,我知道可能还有其他几个.

谢谢

Kha*_*uri 7

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

/\d+\.\d+/g

虽然它会对您的输入做出假设.主要是它没有其他内容看起来像十进制数.

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

你需要反斜杠,因为在正则表达式中.意味着匹配任何角色,所以你必须逃脱它.

这个特殊的正则表达式通过查找看起来像一个或多个数字后跟"."的任何内容来查找看起来像十进制数的任何内容.后跟一个或多个数字.

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

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

console.log(parseFloat(num))
Run Code Online (Sandbox Code Playgroud)

这是一个可以测试正则表达式的站点.它有一些简洁的功能.并解释你的正则表达式在正确的方面做了什么

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