programing

공백 만 포함 된 문자열을 감지하는 방법은 무엇입니까?

firstcheck 2021. 1. 17. 10:56
반응형

공백 만 포함 된 문자열을 감지하는 방법은 무엇입니까?


하나의 공백을 포함하는 문자열 길이는 항상 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)');
}


가장 빠른 해결책은 정규식 프로토 타입 함수 test ()를 사용 하고 공백이나 줄 바꿈이 아닌 문자를 찾는 것입니다 \S.

if (/\S/.test(str))
{
    // found something other than a space or line break
}

매우 긴 문자열이있는 경우 상당한 차이를 만들 수 있습니다.


문자열에 대한 트림 함수를 생성하여 문자열 값을 트림 할 수 있습니다.

String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

이제 모든 문자열에 사용할 수 있으며 다음과 같이 사용할 수 있습니다.

str.trim().length// Result will be 0

이 방법을 사용하여 문자열의 시작과 끝에서 공백을 제거 할 수도 있습니다.

"  hello  ".trim(); // Result will be "hello"

문자열에서 공백을 제거하려면 String.trim().

//!str will return true if the string is null, undefined, or ''
//!str.trim() will return true if the string is '' after removing trailing whitespaces (which means it is an empty string)
function isNullOrEmpty(str){
    return !str||!str.trim();
}

이 메서드는 문자열에 공백 만 포함되어 있는지 확인하는 데 사용할 수 있으며 다음과 같이 매번 호출 할 수 있습니다.

var str = document.getElementById("txt").value;
if(isNullOrEmpty(str)){
     console.log("String is empty or contains only spaces.");
}

데모:

function isNullOrEmpty(str){
    return !str||!str.trim();
}
const resultElem = document.getElementById("result");
const inputElem = document.querySelector('input');
function testEmpty(){
  if(isNullOrEmpty(inputElem.value)){
  result.textContent = "Input is an empty String or a String containing only spaces.";
  } else {
    result.textContent = "Input is not an empty String or a String containing only spaces.";
  }
}
<input type="text">
<br/>
<button onClick="testEmpty()">Check</button>
<p/>
<span id="result"></span>


트림 함수를 생성하여 문자열 값 트림

var text = "  ";
if($.trim(text.length == 0){
  console.log("Text is empty");
}
else
{
  console.log("Text is not empty");
}

Rory의 답변과 유사하게 ECMA 5를 사용하면 이제 정규식을 사용하는 대신 str.trim (). length를 호출 할 수 있습니다. 결과 값이 0이면 공백 만 포함 된 문자열이 있음을 알 수 있습니다.

if (!str.trim().length) {
    console.log("str is empty!");
}

여기에서 트림에 대한 자세한 내용을 읽을 수 있습니다 .

참조 URL : https://stackoverflow.com/questions/10261986/how-to-detect-string-which-contains-only-spaces

반응형