2014-11-06 2 views
0

소수점 이하의 특정 자릿수와 일치하는 코드가 있습니다. 현재, 다음과 같습니다 :JavaScript의 동적 정규식 패턴

이 방법은 항상 소수점 다음 첫 번째 숫자를 가져옵니다. 그러나 정규식의 1을 count의 값으로 바꾸려고합니다. 어떻게해야합니까?

var pattern = '/^\d+(?:\.\d{0,' + count + '})?/'; 
var x = Number(input.toString().match(pattern)); 

그러나 지금, 나는 항상 x에 대한 0를 얻을 : 나는 다음 시도했다.

var re = new RegExp('^\\d+(?:\\.\\d{0,' + count + '})?'); 
+0

당신은 BTW 동적 패턴 – hindmost

+0

를 사용하려면'Regexp' 객체를 사용할 필요가 아닌'\는 '^ \ d'와 같은 D'? – philtune

답변

2

당신은 Regexp 객체를 사용합니다.

var pattern = '^\\d+(?:\\.\\d{0,' + '5' + '})?', 
    reg=new RegExp(pattern), 
    x = Number(input.toString().match(reg)); 
+2

문자열의 백 슬래시는 이스케이프되어야합니다 (정규 표현식의 백 슬래시와 달리). – nnnnnn

+0

@nnnnnn 메모 주셔서 감사합니다. 고정 – hindmost

0

이 당신을 도울 것입니다 : 당신이 동적으로 작성 패턴을 사용하려면

+1

정규식 패턴의 처음과 끝에'/'를 포함하지 마십시오. 정규식 패턴을 문자열로 제공하면 정규식 리터럴에만 적용됩니다. 또한 패턴이 문자열에 있으면 백 슬래시를 이스케이프 처리해야합니다. – nnnnnn

+0

고마워요. –