IT story

문자열에 공백이 있는지 확인

hot-time 2020. 9. 17. 18:58
반응형

문자열에 공백이 있는지 확인


문자열에 공백이 있는지 확인 하려고 합니다 . 이 기능을 찾았지만 작동하지 않는 것 같습니다.

function hasWhiteSpace(s) 
{
    var reWhiteSpace = new RegExp("/^\s+$/");

    // Check for white space
    if (reWhiteSpace.test(s)) {
        //alert("Please Check Your Fields For Spaces");
        return false;
    }

    return true;
}

그건 그렇고, 나는 RegExp.

뭔가 잘못 되었나요? 내가 사용할 수있는 더 좋은 것이 있습니까? 바라건대 JQuery.


입력 문자열에 indexOf 메서드를 간단히 사용할 수 있습니다 .

function hasWhiteSpace(s) {
  return s.indexOf(' ') >= 0;
}

또는 간단한 RegEx에서 테스트 방법을 사용할 수 있습니다.

function hasWhiteSpace(s) {
  return /\s/g.test(s);
}

이것은 또한 Tab과 같은 다른 공백 문자를 확인합니다.


귀하의 정규식은 그대로 아무것도 일치하지 않습니다. 따옴표를 제거해야합니다 "/". 문자로 충분합니다.

/^\s+$/문자열이 모두 공백 인지 확인합니다 .

  • ^ 문자열의 시작과 일치합니다.
  • \s+ 적어도 1 개, 가능하면 더 많은 공간을 의미합니다.
  • $ 문자열의 끝과 일치합니다.

정규식을 /\s/따옴표없이로 바꾸 십시오.


이 함수는 공백뿐 아니라 다른 유형의 공백 (탭, 캐리지 리턴 등)을 확인합니다.

import some from 'lodash/fp/some'
const whitespaceCharacters = [' ', '  ',
  '\b', '\t', '\n', '\v', '\f', '\r', `\"`, `\'`, `\\`,
  '\u0008', '\u0009', '\u000A', '\u000B', '\u000C',
'\u000D', '\u0020','\u0022', '\u0027', '\u005C',
'\u00A0', '\u2028', '\u2029', '\uFEFF']
const hasWhitespace = char => some(
  w => char.indexOf(w) > -1,
  whitespaceCharacters
)

console.log(hasWhitespace('a')); // a, false
console.log(hasWhitespace(' ')); // space, true
console.log(hasWhitespace(' ')); // tab, true
console.log(hasWhitespace('\r')); // carriage return, true

Lodash 를 사용하고 싶지 않다면 다음은 some2를 사용한 간단한 구현입니다 s.

const ssome = (predicate, list) =>
{
  const len = list.length;
  for(const i = 0; i<len; i++)
  {
    if(predicate(list[i]) === true) {
      return true;
    }
  }
  return false;
};

그럼 그냥 교체 some와 함께 ssome.

const hasWhitespace = char => some(
  w => char.indexOf(w) > -1,
  whitespaceCharacters
)

Node의 경우 다음을 사용하십시오.

const { some } = require('lodash/fp');

제안 된 유효성 검사는 다음과 같습니다.

var isValid = false;

// Check whether this entered value is numeric.
function checkNumeric() {
    var numericVal = document.getElementById("txt_numeric").value;

    if(isNaN(numericVal) || numericVal == "" || numericVal == null || numericVal.indexOf(' ') >= 0) {
        alert("Please, enter a numeric value!");
        isValid = false;
    } else {
        isValid = true;
    }
}

참고 URL : https://stackoverflow.com/questions/1731190/check-if-a-string-has-white-space

반응형