jquery-out-of-the-box, 즉 플러그인없이 빈 문자열을 테스트하는 가장 좋은 방법은 무엇입니까? 나는 노력 이 .
그러나 적어도 기본적으로는 작동하지 않았습니다. 내장 된 것을 사용하는 것이 좋습니다.
반복하고 싶지 않습니다
if (a == null || a=='')
일부 if (isempty(a))
는 가능 하다면 어디든지 .
jquery-out-of-the-box, 즉 플러그인없이 빈 문자열을 테스트하는 가장 좋은 방법은 무엇입니까? 나는 노력 이 .
그러나 적어도 기본적으로는 작동하지 않았습니다. 내장 된 것을 사용하는 것이 좋습니다.
반복하고 싶지 않습니다
if (a == null || a=='')
일부 if (isempty(a))
는 가능 하다면 어디든지 .
답변:
if (!a) {
// is emtpy
}
문자열의 공백을 무시하려면
if (!a.trim()) {
// is empty or whitespace
}
에 대한 레거시 지원 (IE8-)이 필요한 경우 또는 polyfill을trim()
사용 하십시오 .$.trim
a
""또는 다른 거짓 값 (null, false, undefined, 0, NaN) 이면 표현식이 true로 평가됩니다 .
if (!$.trim(a))
if (!a.trim())
조금 위험 하지 않습니까? 어떤 경우 a
정의되지는 null?
당신이 준 링크는 반복하지 않으려는 테스트와 다른 것을 시도하는 것 같습니다.
if (a == null || a=='')
문자열이 빈 문자열인지 아니면 null인지 테스트합니다. 연결 한 기사는 문자열이 공백으로 구성되어 있는지 또는 비어 있는지 테스트합니다.
설명한 테스트는 다음으로 대체 할 수 있습니다.
if (!a)
자바 스크립트에서는 빈 문자열과 null이므로 모두 부울 컨텍스트에서 false로 평가됩니다.
if(!a)
4 개의 공백으로 구성된 문자열에 대해서는 실패하지 않습니까? ``
0
빈 문자열처럼 취급 되지만 그렇지는 않습니다 "0"
. 그게 당신의 뜻이라고 생각합니까? 이것이 a
문자열인지 또는 null 인지 알고있는 상황에서 사용되고 있다고 생각할 수 있습니다. 알아야 할 것.
를 기반으로 다윗의 대답 나는 개인적으로이 문자열 모두에있는 경우 먼저 지정된 객체를 확인하고 싶다. 그렇지 않으면 .trim()
존재하지 않는 객체를 호출 하면 예외가 발생합니다.
function isEmpty(value) {
return typeof value == 'string' && !value.trim() || typeof value == 'undefined' || value === null;
}
용법:
isEmpty(undefined); // true
isEmpty(null); // true
isEmpty(''); // true
isEmpty('foo'); // false
isEmpty(1); // false
isEmpty(0); // false
null, undefined, '', '', {}, [] 와 같은 모든 '빈'을 확인합니다 .
var isEmpty = function(data) {
if(typeof(data) === 'object'){
if(JSON.stringify(data) === '{}' || JSON.stringify(data) === '[]'){
return true;
}else if(!data){
return true;
}
return false;
}else if(typeof(data) === 'string'){
if(!data.trim()){
return true;
}
return false;
}else if(typeof(data) === 'undefined'){
return true;
}else{
return false;
}
}
사용 사례 및 결과.
console.log(isEmpty()); // true
console.log(isEmpty(null)); // true
console.log(isEmpty('')); // true
console.log(isEmpty(' ')); // true
console.log(isEmpty(undefined)); // true
console.log(isEmpty({})); // true
console.log(isEmpty([])); // true
console.log(isEmpty(0)); // false
console.log(isEmpty('Hey')); // false
if((a.trim()=="")||(a=="")||(a==null))
{
//empty condition
}
else
{
//working condition
}
null
다음 a.trim()
실패합니다. 이것은 점검하는 나쁜 순서입니다. 그리고 당신이 순서를 변경하면, 당신의 대답은 이전에 제안되지 않은 아무것도 제공하지 않습니다.