Javascript 如何在JS中将字符串(带前缀的数字)转换为双精度/浮点型

Javascript 如何在JS中将字符串(带前缀的数字)转换为双精度/浮点型,javascript,string,double,Javascript,String,Double,如何将带有前缀的数字转换为double/float,例如STA01.02到1.02?如果前缀始终相同 var str = "STA01.02"; var number = parseFloat(str.substring(3)); 使用正则表达式剥离非数字(不包括“.”),以获得更灵活的解决方案: parseFloat("STA01.02".replace(/[^0-9\.]+/g, '')); 对于本例,子字符串(2)给出了“A01.02”。“01.02”需要子字符串3,或“1.02”需要

如何将带有前缀的数字转换为
double/float
,例如
STA01.02
1.02

如果前缀始终相同

var str = "STA01.02";
var number = parseFloat(str.substring(3));

使用正则表达式剥离非数字(不包括“.”),以获得更灵活的解决方案:

parseFloat("STA01.02".replace(/[^0-9\.]+/g, ''));

对于本例,子字符串(2)给出了“A01.02”。“01.02”需要子字符串3,或“1.02”需要子字符串(4)。子字符串(2)无法正确解析浮点。或者只是
/[^\d.]/g
-您不需要在
[]
中转义
,也不需要
+
。(虽然使用
+
可能更有效,因为它只会进行一次更换?不确定。)嗨!字母前缀是固定的,但数字部分会发生变化(例如STA01.02、STA11.03、STA23.11),因此我需要“01.02”部分。。。如果在“1.02”之前有一个“0”,解析仍然有效吗?哦,如果你只想去掉“STA”而不是“STAn”,其中n是一个数字,那么它就是var noPrefix=myString.substring(3);//只有“01.02”。或者,如果您想清除所有信件,请使用公认的解决方案。
parseFloat("STA01.02".replace(/[^0-9\.]+/g, ''));