Проверьте, имеет ли строка пробел

Я пытаюсь проверить, имеет ли строка пробел. Я нашел эту функцию, но она не работает:

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.

Ответ 1

Вы можете просто использовать метод indexOf в строке ввода:

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

Или вы можете использовать метод тестирования на простом RegEx:

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

Это также проверит другие символы пробела, такие как Tab.

Ответ 2

Ваше регулярное выражение не будет соответствовать ничему, как есть. Вам обязательно нужно удалить кавычки - достаточно символов "/".

/^\s+$/ проверяет, является ли строка ALL пробелом:

  • ^ соответствует началу строки.
  • \s+ означает как минимум 1, возможно, больше пробелов.
  • $ соответствует концу строки.

Попробуйте заменить регулярное выражение на /\s/ (и без кавычек)

Ответ 3

ваша логика обратная, true означает false.

Ответ 4

Вот моя рекомендуемая проверка:

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;
    }
}