2012-02-14 2 views
4

regex replace를 사용하여 제조법의 금액을 곱하려고합니다. 여기 정규식을 곱하고 문자열로 바꾸십시오.

내가 늘어나는만큼 여기있어 예를 들어 HTML 코드

<div id="ingredients"> 
    <ul> 
     <li>2 bananas, sliced</li> 
     <li>1 cup frozen strawberries</li> 
     <li>8 oz. low fat vanilla yogurt</li> 
    </ul> 
</div> 

입니다. 나는 곱한 하나 예전 일치하는 수를 곱하면 다음 교체하는 방법을 찾으려고 노력 해요 :

var str = document.getElementById('ingredients').innerHTML; 
var regex = /[0-9]+(?:\.[0-9]*)?/g; 
str = str.replace(regex, "$&" * 2); 
console.log(str)​ 

을하지만 내가 얻을 출력 :

<ul> 
    <li>NaN bananas, sliced</li> 
    <li>NaN cup frozen strawberries</li> 
    <li>NaN oz. low fat vanilla yogurt</li> 
</ul> 

하는 사람이 지적시겠습니까 내가 "$ &"을 플로트로 변환하는 방법에 대한 올바른 방향으로 나를 곱하면 될까요?

감사합니다.

+0

호기심에서 벗어나 딸기 2 컵에 2 바나나를 곱하면 어떻게 될 것으로 예상하십니까? 바나나 베리 2 잔짜리 조각? –

+0

@Igor 나는 다양한 값을 곱하지 않고 모든 값에 상수를 곱하는 방법을 배가하려고합니다. – Phrogz

+0

정확하게, 나는 얼마나 많은 서빙인지를 처음에 알고 추가 값으로 사용자에게 콤보 박스를 제공함으로써 레시피의 서빙을 동적으로 증가 시키려고 노력 중이다. –

답변

6

당신은 당신이 그것을 곱 전에 숫자로 문자열을 구문 분석 할 수 있습니다 당신은 자바 스크립트 문자열을 증식 할 수

str = str.replace(/[0-9]+(?:\.[0-9]*)?/g, function(m) { return 2*parseFloat(m)+''; }); 

!

"" * 2 // NaN 
+0

+1 고마워, 정확히 내가 필요로하는 것을한다. –

관련 문제