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