2011-03-03 10 views
1

私は合計数

<textarea id="ta">some text <cars (5)> and more text <bikes (10)> blah...</a> 
私はjQueryを使って負荷にそのテキストエリア内のすべての数字の合計を取得できますか

(N = 5のようなテキストといくつかの数字とテキスト領域を、持っている場合は+ 10)?

+1

は常に括弧で囲まれた数字ですか? – Kyle

+2

真実は:jQuery(プラグインなし)で何らかの数学演算を実行することはできません! ; o)真剣に:これはJavaScriptの問題であり、jQueryの問題ではありません。テキストの一般的な形式は何ですか? 「タグ」の数字以外の数字がありますか? –

+0

@Kyleはい、私はregex(ただ1つのフィールドの場合)でそれを得ることができます:$(#myField).match(/ \(([0-9] +)\)/)[1]; – santa

答えて

4
var sum = 0; 
var numbers = $("#ta").text().match(/\d+/g); 

if (numbers) 
{ 
    $.each(numbers, function() { 
     sum += parseInt(this); 
    }); 
} 

あなたは、すべての数字が含まれてはならない場合は、正規表現を変更する必要があります。

編集:あなただけの括弧に包まれた数字をしたい場合は、以下を使用することができます。

var sum = 0; 
var regex = /\((\d+)\)/g; 
var text = $("#ta").text(); 

while (match = regex.exec(text)) 
{ 
    sum += parseInt(match[1]);  
} 
+0

第2の解決策は私の場合の魅力のように機能します!ありがとう。 – santa