Ответ 1
У вас есть место в любом месте строки, а не только между словами.
Если вы хотите найти какие-либо пробелы, вы можете использовать это, которое использует регулярное выражение:
if (/\s/.test(str)) {
// It has any kind of whitespace
}
\s
означает "любой символ пробела" (пробелы, вкладки, вертикальные вкладки, формы, разрывы строк и т.д.) и найдет этот символ в любом месте строки.
Согласно MDN, \s
эквивалентно: [ \f\n\r\t\v\u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000]
.
По какой-то причине я изначально прочитал ваш вопрос как "Как узнать, содержит ли строка только пробелы?" и поэтому я ответил ниже. Но, как указывает @CrazyTrain, это не то, о чем говорится в этом вопросе. Я оставлю это, однако, на всякий случай...
Если вы имеете в виду буквально пробелы, регулярное выражение может сделать это:
if (/^ *$/.test(str)) {
// It has only spaces, or is empty
}
Это говорит: сопоставьте начало строки (^
), за которой следует ноль или более пробелов, за которыми следует конец строки ($
). Измените *
на +
, если вы не хотите соответствовать пустой строке.
Если вы подразумеваете пробелы как общую концепцию:
if (/^\s*$/.test(str)) {
// It has only whitespace
}
Использует \s
(пробел), а не пробел, но в остальном то же самое. (И опять, измените *
на +
, если вы не хотите сопоставлять пустую строку.)