저는 항상 정의되지 않은 값을 얻는 방법이 0을 두 번째 요소로 사용하는 분리 연산자를 추가하는 것이라고 생각했습니다. 예가 더 명확 할 수 있습니다.
여기에 바이올린이 있습니다.
$("textarea").val().match(/a/g).length || 0)
위 a
의 내용이 텍스트 영역에서 발견 된 시간을 반환하고 찾을 수없는 경우 (길이가 정의되지 않은 경우) OR 문의 두 번째 부분 인 0
. 그러나 보시다시피 이것은 작동하지 않습니다. 콘솔 반환 :
포착되지 않은 TypeError : null의 'length'속성을 읽을 수 없습니다.
따라서 undefined 대신 length는 오류를 발생시킵니다. 어떻게하면 최선을 다할 수 있습니까? 0
일치하는 항목이없는 경우 어떻게 반환 할 수 있습니까?
match
null
일치하는 항목이 없으면 반환합니다 . 그래서, 때 당신은 뭔가 입력 textarea
이 포함되지 않는를 a
, match()
반환합니다 null
. 그리고 null.length
오류입니다.
반환 값
일치 된 결과를 포함하는 Array 또는 일치하는 항목 이 없으면 null 입니다.
데모
$("textarea").on("input", function() {
console.log(($("textarea").val().match(/a/g) || []).length);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<textarea></textarea>
당신은 또한 사용할 수 있습니다
($("textarea").val().match(/a/g) || '').length // Thanks to @nnnnnn
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다