난 다음 오류가 다음 자바 스크립트 함수 실행시 :jQuery/JavaScript 함수에서이 오류가 발생하는 이유는 무엇입니까?
'2' is null or not an object.
txtRawCardData
요소에서 입력 I가 문자열 배열로 분할 ^
문자를 포함하는 문자열이다.
업데이트 난 내가 파이어 폭스 3.5.6을 실행할 때이 오류가 발생하지 않는 인터넷 익스플로러 7에서 내 jQuery 코드를 실행할 때만이 오류가 발생합니다.
업데이트 2 :
이 오류는 내가 발사에서 모든 ASP.NET CustomValidator
컨트롤에 대해 쓴 자바 스크립트 기능을 방지한다.
샘플 입력 :이 오류가 발생했습니다 왜
%B1234123412341234^JOHNSON/JOCKO^123412341234570000000?;1234123412341234=123443211234567?
function ProcessCCInfo() {
var rawData = $('#txtRawCardData').val();
rawData = rawData.replace('\n\r', '');
var CCArray = rawData.split('^');
//format the card holder name
var NameArray = CCArray[1].split('/');
var CCName = NameArray[1] + ' ' + NameArray[0];
var CCNumber = CCArray[0].replace('%B', '');
var CCExpiration = CCArray[2].substring(0,4) //this is the line generating the error!
var FormattedDate = CCExpiration.substring(2,4) + '/' + CCExpiration.substring(0,2);
$('#spanCardHolderName').attr('innerHTML', CCName);
$('#spanCCNumber').attr('innerHTML', CCNumber);
$('#spanCCExpirationDate').attr('innerHTML', FormattedDate);
setTimeout("$('#txtCustomerId').focus()", 1000);
}
누구나 알아?
와 정규 표현식을 사용하여 대체 할 ...
rawData = rawData.replace('\n\r', '');
는 첫 번째 '\ n 개의 \ r에'가 발생하지 그들 모두를 대체 할 기억 CCArray [2]가 null 또는 비어 있지 않다는 것을 확인했다고 가정합니다. –@Nathan Taylor -'CArx [2]'는'CCExpiration' 변수를 채우고 있기 때문에 값을 포함하고 있습니다. –
@Michael (가짜 카드 데이터를 사용하여) 죽는 입력의 예를 보여줄 수 있습니까? 내 대답에 넣은 함수에서 그 입력을 시도해 볼 수 있습니까? 여전히 문제가 있다면 알려주시겠습니까? –