다음과 같은 코드가 있습니다. IE에서는 if (RegExp.test(num))의 결과가 매번 TRUE이지만 Fire Fox에서는 처음에 True이면 두 번째에는 False가 되어야 하고 나타납니다. 그 이후에는 교대로. 과거 해결 방법을 살펴보세요.
방법 1: if (RegExp.test(num))를 if (num.match(RegExp))로 변경합니다.
방법 2: RegExp 객체 처리, 즉 new RegExp("^(-)?[0-9]*$")를 사용합니다.
어쨌든 검증되었는지는 모르겠습니다. 사실, 마지막 근본적인 문제는 어떤 일반 개체를 사용해야 하는가가 아니라 표현식의 "g"로 인해 Firefox에서 IE와 일치하지 않는 효과가 발생합니다. 변수이므로 가장 간단하고 효과적인 방법은 var RegExp =/^(-)?[0-9]*$/g를 사용하는 것입니다. var RegExp=/^(-)?[0-9]*$로 변경합니다. /, 좋은 해결책은 복잡함을 신경 쓰지 않고 올바른 해결책이므로 결국 상황이 흔하지 않습니다.
함수 isNum(숫자){
if(숫자.길이==0){
거짓을 반환;
}
var RegExp=/^(-)?[0-9]*$/g;
if (RegExp.test(num)){
사실을 반환;
}또 다른{
거짓을 반환;
}
}