Похоже, вам нужно использовать /^\s*$/.test(this)
вместо this.test(/^\s*$/)
. Не существует метода test()
для строк , если только вы не используете библиотеку JavaScript, которая реализует этот метод.
/^\s*$/.test(this)
было бы достаточно, но первые два выражения могли бы закорачиваться, если любое из них оценивается как true, без необходимости проверять регулярное выражение. Это должно быть довольно эффективно.
Как заметил Мэтью Крамли в комментарии выше, ваше выражение this === " "
всегда будет иметь значение false. Вы можете удалить это выражение или использовать ==
, если вы ожидаете много строк с одним пробелом:
String.prototype.isEmpty = function() {
return this.length === 0 || this == " " || /^\s*$/.test(this);
}