У вас есть место в любом месте строки, а не только между словами.
Если вы хотите найти какие-либо пробелы, вы можете использовать это, которое использует регулярное выражение:
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 (пробел), а не пробел, но в остальном то же самое. (И опять, измените * на +, если вы не хотите сопоставлять пустую строку.)
Ответ 2
var string = 'hello world';
var arr = string.split(''); // converted the string to an array and then checked:
if(arr[i] === ' '){
console.log(i);
}
Я знаю, что регулярные выражения тоже могут помочь!