42

这些是我拥有的字符串:

"test123.00"
"yes50.00"

我想将 123.00 与 50.00 相加。

我怎样才能做到这一点?

我使用了命令 parseInt() 但它在警报框中显示 NaN 错误。

这是代码:

 str1 = "test123.00";
 str2 = "yes50.00";
 total = parseInt(str1)+parseInt(str2);
 alert(total);
4

4 回答 4

98

只需这样做,您需要删除“数字”和“。”以外的字符。形成您的字符串将为您工作

yourString = yourString.replace ( /[^\d.]/g, '' );

你的最终代码将是

  str1 = "test123.00".replace ( /[^\d.]/g, '' );
  str2 = "yes50.00".replace ( /[^\d.]/g, '' );
  total = parseInt(str1, 10) + parseInt(str2, 10);
  alert(total);

演示

于 2012-05-28T06:17:20.273 回答
6

要使 parseInt 起作用,您的字符串应该只有数字数据。像这样的东西:

 str1 = "123.00";
 str2 = "50.00";
 total = parseInt(str1)+parseInt(str2);
 alert(total);

您可以在开始处理它们之前拆分字符串吗?

于 2012-05-28T06:17:57.490 回答
2
str1 = "test123.00";
str2 = "yes50.00";
intStr1 = str1.replace(/[A-Za-z$-]/g, "");
intStr2 = str2.replace(/[A-Za-z$-]/g, "");
total = parseInt(intStr1)+parseInt(intStr2);

alert(total);

工作Jsfiddle

于 2012-05-28T06:29:56.197 回答
-2

这在逻辑上可能吗??..我想你必须采取的方法是这样的:

Str1 ="test123.00"
Str2 ="yes50.00"

test除非您在两者之间有分隔符,否则这将无法解决123.00

eg: Str1 = "test-123.00" 

然后你可以这样拆分

Str2 = Str1.split("-"); 

这将返回一个用“-”分割的单词数组

然后你可以做得到parseFloat(Str2[1])浮动值,即123.00

于 2012-05-28T06:19:32.617 回答