2016-05-27 9 views

答えて

1

を評価できるように、私は標準+演算子と '+' 置き換えることができますどのように

var value = "66+88"; 

これは:

var value = eval("66+88"); 

しかし、特にこの文字列がユーザーから来た場合は注意が必要です。

この関数は入力文字列をJavaScriptとして評価し、他のスクリプトに損害を与えたり、ハッカーの攻撃に使用することができます。

自己責任で使用してください。

+0

あなたはOPの質問から私がこのような危険性を理解できるとは信じられません。 – CherryDT

+0

@CherryDT 'eval'の危険は何ですか? – Mohammad

+1

任意のJavaScriptを実行できること。OPがこの文字列を最初に取得する場所に応じて、予期しない動作や重大なXSSの問題が発生する可能性があります。 – CherryDT

3

使用String#splitArray#mapそれはNumberを取得し、その後、Array#reduce

var value = "66+88"; 
 
var result = value.split('+').map(Number).reduce(function(a, b) { 
 
    return a + b; 
 
}, 0); 
 
console.log(result);

0

使用String#replace

var value = "66+88"; 
 
var result = value.replace(/^(\d+)\+(\d+)$/, function(x, y, z){ 
 
      return parseInt(y) + parseInt(z) }) 
 
console.log(result);

0

split()メソッドを使用して文字列を分割できます。

var value = "66+88"; 
var no = value.split('+'); 
console.log(parseInt(no[0]) + parseInt(no[1])); 

スプリット()方法はアレイを返します。この場合

なし= [ '66'、 '88']

のparseIntない() intに文字列を変換し、あなたは合計を計算することができます。

ありがとうございます!

0

splitreduceを使用して文字列を集計できます。

ここは例です。

var value1 = "66+88"; 
 
var value2 = "66+88+44"; 
 

 

 
function sumUpStr (strToSum) { 
 
    var sum = strToSum.split("+").reduce(function(prev, next) { 
 
    return +prev + +next; 
 
    }); 
 
    return sum; 
 
}; 
 

 

 
console.log("Sum of value1 is: " + sumUpStr(value1)); 
 
console.log("Sum of value2 is: " + sumUpStr(value2)); 
 
console.log("Sum of value1 + value2 is: " + sumUpStr(value1 + "+" + value2));

関連する問題