2013-04-18 2 views
0

가 여기에 jsFiddle 이유를 알아낼 수 없습니다 : jsFiddle자바 스크립트 번호 정규식 테스트 실패 -

관련 코드 :

var number = /\d+(.\d+)?/g; 

$('body').append(number.test(2.5) + "<br>"); 
$('body').append(number.test(20) + "<br>"); 
$('body').append(number.test(2) + "<br>"); 

출력

true 
false 
true 
+2

당신은 아마 \ '예 .'을 기간을 탈출해야한다. '.' 자체는 와일드 카드 일치입니다. – Phil

+0

@Phil - 관련 없음, ** true true ** ([업데이트 된 바이올린] (http://jsfiddle.net/BUpyd/2/)). – jahroy

+0

@jahroy 여기에는 문제가 없지만'2af'와 같은 오탐이 더 많이 발생합니다 – Phil

답변

7

g 제거하십시오. 그것은 필요하고 정규 표현식 객체가 이전 경기를 기반으로 위치를 추적 유지하기 때문에 실패 할 정규식 원인이 아니에요 : 간부와 마찬가지로 https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/RegExp/test

을 (또는 그와 함께), 테스트는 여러 번 호출 동일한 전역 정규 표현식 인스턴스가 이전 일치를지나 진행됩니다.

http://jsfiddle.net/BUpyd/1/