2014-05-16 2 views
1

죄송합니다. 질문이 잘못되었지만 내가 물어 보려는 내용은 JS에서 문자열의 부분 문자열을 캡처 한 두 그룹의 제품으로 대체 하시겠습니까? 무슨 뜻인지 알아 보려면 다음 줄을보십시오. 어떻게 다음과 같은 작업을 수행합니다 : 문자열의 표현식을 값으로 대체하는 방법은 무엇입니까?

expression.replace(regexp,parseFloat("$1")*parseFloat("$3")); 

"정규 표현식은"/(\d+(\.\d+)?)\*(\d+(\.\d+)?)/과 "표현"입니다

"20*5"입니까?

그것은 작동하지 않으며, 나는 왜 확실하지 않습니다. expression.replace(regexp,"$1_$3") 인쇄 밖으로 20_5, 그래서 왜 문자열 "$1""$3"에 첫 번째와 세 번째 그룹의 값에서 parseFloat() 변화에 그 값을 "$1""$3"을 두는 것?

궁금한 점이 있으시면, GraphWidget 웹 사이트는 PLTW 클래스 용 STEM 프로젝트입니다.

감사합니다. 이 작업을 수행 할 경우에는 차이가 없습니다

+0

그것은 당신이 당신이 거기에 숫자와 분석 방법을 넣을 수 있다고 생각하는 무슨, 문자열 교체, 그리고 단지 문자열. – adeneo

+0

eval ("20 * 5")은 찾고있는 것을 제공하지 않습니까? – Dalorzo

+2

콜백을 전달해야합니다. – SLaks

답변

2

나는 생각한다

"20*5".split('*').reduce(function(a,c){ 
    return a <=0? c : a*c 
},0); 

이 방법의 장점은 또한 코드를

면책 조항을 변경하지 않고 "20*5*3"작동 것입니다 : 정규 표현식을 사용하여 문제를 해결하는 것이 좋습니다. 나는 단지 문제의 측면을 제시하고있다.

+2

감사합니다. 그것을 해결하는 흥미로운 방법입니다. –

관련 문제