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 に答える