Я не заметил ответа, который учитывает возможность появления нулевых символов в строке. Например, если у нас есть нулевая строка символов:
var y = "\0"; // an empty string, but has a null character
(y === "") // false, testing against an empty string does not work
(y.length === 0) // false
(y) // true, this is also not expected
(y.match(/^[\s]*$/)) // false, again not wanted
Чтобы проверить его недействительность, можно сделать что-то вроде этого:
String.prototype.isNull = function(){
return Boolean(this.match(/^[\0]*$/));
}
...
"\0".isNull() // true
Он работает с пустой строкой и пустой строкой и доступен для всех строк. Кроме того, его можно расширить, чтобы он содержал другие пустые или пробельные символы JavaScript (то есть неразрывный пробел, метку порядка байтов, разделитель строк / абзацев и т.