Ответы:
Вместо того, чтобы проверять всю строку, чтобы увидеть, есть ли только пробелы, просто проверьте, есть ли хотя бы один символ без пробелов:
if (/\S/.test(myString)) {
// string is not empty and not just whitespace
}
Самый простой ответ, если ваш браузер поддерживает trim()
функцию
if (myString && !myString.trim()) {
//First condition to check if string is not empty
//Second condition checks if string contains just whitespace
}
Что ж, если вы используете jQuery, это проще.
if ($.trim(val).length === 0){
// string is invalid
}
Просто проверьте строку на это регулярное выражение:
if(mystring.match(/^\s+$/) === null) {
alert("String is good");
} else {
alert("String contains only whitespace");
}
Регулярное выражение, которое я использовал, когда хочу разрешить пробелы в середине моей строки, но не в начале или конце, было следующим:
[\S]+(\s[\S]+)*
или
^[\S]+(\s[\S]+)*$
Итак, я знаю, что это старый вопрос, но вы можете сделать что-то вроде:
if (/^\s+$/.test(myString)) {
//string contains characters and white spaces
}
или вы можете сделать то, что сказал nickf, и использовать:
if (/\S/.test(myString)) {
// string is not empty and not just whitespace
}
Я использовал следующий метод, чтобы определить, содержит ли строка только пробелы. Он также соответствует пустым строкам.
if (/^\s*$/.test(myStr)) {
// the string contains only whitespace
}
Это может быть быстрое решение
return input < "\u0020" + 1;
return input < " 1";
Это просто сравнение по алфавиту. Пока ввод отсортирован ниже "1", он вернет true. Пример: return " asdfv34562345" < "\u0020" + 1;
оценивается как истина.