하나의 공백을 포함하는 문자열 길이는 항상 1과 같습니다.
alert('My str length: ' + str.length);
공백은 문자이므로 :
str = " ";
alert('My str length:' + str.length); // My str length: 3
빈 문자열과 공백 만 포함 된 문자열을 어떻게 구분할 수 있습니까? 공백 만 포함 된 문자열을 어떻게 감지 할 수 있습니까?
답변
이를 위해 정규식을 사용하여 문자열의 모든 공백을 제거 할 수 있습니다. 결과 문자열의 길이가 0
이면 원본에 공백 만 포함되어 있는지 확인할 수 있습니다. 이 시도:
var str = " ";
if (!str.replace(/\s/g, '').length) {
console.log('string only contains whitespace (ie. spaces, tabs or line breaks)');
}
답변
가장 빠른 솔루션은 regex 프로토 타입 함수를 사용하는 것입니다. test ()를 사용 하고 공백이나 줄 바꿈이 아닌 문자를 찾는 것입니다 \S
.
if (/\S/.test(str))
{
// found something other than a space or line break
}
매우 긴 문자열이있는 경우 상당한 차이를 만들 수 있습니다.
답변
Rory의 답변과 유사하게 ECMA 5를 사용하면 이제 str.trim().length
정규 표현식을 사용하는 대신 호출 할 수 있습니다 . 결과 값이 0이면 공백 만 포함 된 문자열이있는 것입니다.
if (!str.trim().length) {
console.log('str is empty!');
}
여기에서 트림에 대한 자세한 내용을 읽을 수 있습니다 .
답변
if(!str.trim()){
console.log('string is empty or only contains spaces');
}
문자열에서 공백을 제거하려면 String#trim()
.
문자열이 null인지 정의되지 않았는지 확인하려면 문자열 자체가 거짓인지 여부를 확인할 수 있습니다.이 경우 null, undefined 또는 빈 문자열입니다. 메소드를 호출하려고 시도 null
하거나 undefined
오류가 발생 하므로이 첫 번째 확인이 필요 합니다. 공백 만 포함되어 있는지 확인하기 위해 트리밍 후 문자열이 거짓인지 확인할 수 있습니다. 즉, 해당 지점에서 빈 문자열임을 의미합니다.
if(!str || !str.trim()){
//str is null, undefined, or contains only spaces
}
이것은 선택적 연결 연산자를 사용하여 단순화 할 수 있습니다 .
if(!str?.trim()){
//str is null, undefined, or contains only spaces
}
변수가 문자열이라는 것이 확실한 경우 두 번째 확인 만 필요합니다.
if(!str.trim()){
console.log("str is empty or contains only spaces");
}
답변
문자열에 대한 트림 함수를 생성하여 문자열 값을 트림 할 수 있습니다.
String.prototype.trim = function () {
return this.replace(/^\s*/, "").replace(/\s*$/, "");
}
이제 모든 문자열에 사용할 수 있으며 다음과 같이 사용할 수 있습니다.
str.trim().length// Result will be 0
이 방법을 사용하여 문자열의 시작과 끝에서 공백을 제거 할 수도 있습니다.
" hello ".trim(); // Result will be "hello"
답변
트림 함수를 생성하여 문자열 값 트림
var text = " ";
if($.trim(text.length == 0){
console.log("Text is empty");
}
else
{
console.log("Text is not empty");
}