2014-06-17 2 views
0

통화 문자열을 숫자로 변환하려고합니다. 이전에 비슷한 문맥에서 성공적으로 사용한 정규 표현식을 사용하여 바꾸기 함수를 사용하고 있습니다.Javascript "Replace"가 jQuery를 통해 반환 된 문자열에서 작동하지 않습니다.

은 통화 문자열은 "각"루프의 일부, 여기 캡처 :

var unitGridPrice = jQuery(this).find(".clsPriceGridDtlPrice").html(); 

결과는 unitGridPrice은 통화 문자열, "$ 2.75"과 같은 것입니다. 여기 숫자로 변환하려고합니다 :

var priceToConvert = unitGridPrice; 
var unitGridPriceNo = Number(priceToConvert.replace(/[^0-9\.]+/g, '')); 

그러나 마지막 줄을 사용하면 스크립트가 실행되지 않습니다.

priceToConvert 값을 사용하면 통화 텍스트 문자열이 올바르게 표시되므로 바꾸기 기능을 제공하는 문자열이 정확하다고 생각합니다.

"var priceToConvert = unitGridPrice"를 "var priceToConvert ="$ 2.75 "로 변경하면 스크립트에서 2.75를 올바르게 반환합니다. 테스트하고있는 텍스트 문자열에 unitGridPrice가 표시하는 값을 복사하여 지나칠 수 있습니다. 그러나 거기에 변수가 있으면 스크립트가 죽습니다.

.replace ('$', '')로 바꾸면 정규식을 삭제하려고 시도했지만 스크립트는 변수가있는 위치에서 멈추지 만 테스트 할 때 작동합니다. 고정 된 문자열.

정말 난처한 상황에 빠진거야. ?? 도와주세요! 감사!

+0

스크립트가 죽었다는 것은 무엇을 의미합니까? 오류가 있습니까? – univerio

+0

'console.log (unitGridPrice)'는 당신에게 무엇을 보여 줍니까? –

+0

스크립트가 완료되지 않고 "priceToConvert is null"이라는 오류가 발생합니다. "문자열"함수 (스트로크에서 파악)를 사용하여 jQuery 호출의 출력을 강제 실행하고 "문자열이 정의되지 않았습니다"로 변경된 오류 메시지가 표시되었습니다. . 동일한 코드에서 replace 함수를 제거하고 unitGridPrice를 "priceToConvert"변수에 할당하면 변환하려는 문자열이 정확하게 얻어집니다. 이해할 수 없는. 나는 이것으로 자고 싶다. – dexter

답변

0

납입을 얻으려고 동안 나는 약간의 문제가 있었다 작은 시간 전에도 문자열에서 ber. 문제는 정규식입니다, 그래서 아래 코드와 같은 정규식을 변경했습니다. 위의

var id = element.name.replace (/[^\d.]/g, ''); 

element.name 등 input_21, input_22 같이하고 난 단지 수 (21, 22)를 얻을 싶어요. 당신을 도울 수 있기를 바랍니다. :)

관련 문제