Проверьте, имеет ли строка пробел
Я пытаюсь проверить, имеет ли строка пробел. Я нашел эту функцию, но она не работает:
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;
}
}