공백 만 포함 된 문자열을 감지하는 방법은 무엇입니까?
하나의 공백을 포함하는 문자열 길이는 항상 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
'programing' 카테고리의 다른 글
Chrome의 눈에 띄지 않는 유효성 검사는 dd / mm / yyyy로 유효성을 검사하지 않습니다. (0) | 2021.01.17 |
---|---|
Bash : 문자열을 문자 배열로 분할 (0) | 2021.01.17 |
Jquery 선택이 + 클래스 (0) | 2021.01.17 |
iOS 7에서 시작하는 동안 상태 표시 줄 스타일을 변경하는 방법 (0) | 2021.01.17 |
확인없이 모든 Chocolatey 응용 프로그램을 업데이트하려면 어떻게합니까? (0) | 2021.01.17 |