Відповіді:
Замість того , щоб перевіряти всю рядок , щоб побачити , якщо є тільки прогалини, просто перевірити, якщо є принаймні один символ , НЕ пробілами:
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", він повернеться істинним. Приклад: return " asdfv34562345" < "\u0020" + 1;
оцінюється до істини.