2013-01-22 4 views
-2

기존의 "+"기호뿐만 아니라 "/"또는 ","기호를 추가하고 싶습니다. 분명히 "/"기호는 나눗셈에 사용되지만 그 목적을 바꾸고 싶습니다."+"를 사용하지 않고 추가

자바 스크립트

function CalculateIMSUB(form) { 
    var Atext = form.input_A.value; 
    var Btext = form.input_B.value; 
    var val = form.val.value; 
    var A = eval(Atext); 
    var B = eval(Btext); 
    if (isNaN(A)) A = 0; 
    if (isNaN(B)) B = 0; 
    var answer = A - B; 
    form.Answer.value = answer; 
    form.input_A.value = form.input_A.value.replace(/\+/g, ","); 
    form.input_B.value = form.input_B.value.replace(/\+/g, ","); 
} 

function calculateAll() { 
    var forms = document.getElementsByTagName("form"); 
    for (var i = 0; i < forms.length; i++) { 
    CalculateIMSUB(forms[i]); 
    } 
} 

HTML

<form> 
    <INPUT TYPE=TEXT NAME="input_A" SIZE=15 /> 
    <INPUT TYPE=TEXT NAME="input_B" SIZE=10 /> 
    <INPUT TYPE="button" VALUE="+" name="SubtractButton" onclick="CalculateIMSUB(this.form)" 
    /> 
    <INPUT TYPE=TEXT NAME="Answer" SIZE=12 /> 
    <input type="hidden" name="val" value="1221" /> 
</form> 

Here's my example

+4

그리고 정확히 귀하의 질문은 무엇입니까? [이] (http://stackoverflow.com/questions/1634341/overloading-arithmetic-operators-in-javascript)? – hjpotter92

+0

내가 할 수있는 것 : 4/2 6 또는 4,3 7 같음 7 –

답변

2

이런 식으로 뭔가를 구현하십시오. No eval, 그냥 배열.

function add(value) { 
    return value.split(/[+,\/]/).reduce(function(a,b) { 
    return +a + +b; 
    }); 
} 

console.log(add('1+1+1')); //=> 3 
console.log(add('2,2,2')); //=> 6 
console.log(add('3/3/3')); //=> 9 
+0

이것은 지정된 형식의 문자열을 취하는 함수이므로 각 입력 값을 하나씩 가져 와서 함수를 통해 실행해야합니다. 결과를 얻으십시오. – elclanrs

관련 문제