Подтвердить что ты не робот

IsNullorWhitespace в javascript

Есть ли эквивалент Javascript для isNullOrWhitespace, поэтому я могу проверить, есть ли в текстовом поле на стороне клиента какой-либо текст, а не просто пробел или пустой/нуль?

Я предпочел бы сделать это на стороне клиента сначала, чем опубликовать содержимое и проверить серверную сторону, хотя я тоже это сделаю.

Спасибо!

4b9b3361

Ответ 2

Для краткой современной кросс-браузерной реализации просто выполните:

function isNullOrWhitespace( input ) {
  return !input || !input.trim();
}

Здесь jsFiddle. Примечания ниже.


принятый в настоящее время ответ можно упростить, чтобы:

function isNullOrWhitespace( input ) {
  return (typeof input === 'undefined' || input == null)
    || input.replace(/\s/g, '').length < 1;
}

И используя фальшивость, еще больше:

function isNullOrWhitespace( input ) {
  return !input || input.replace(/\s/g, '').length < 1;
}

trim() доступен во всех последних браузерах, поэтому мы можем по желанию отказаться от регулярного выражения:

function isNullOrWhitespace( input ) {
  return !input || input.trim().length < 1;
}

И добавьте немного смелости в микс, давая окончательную (упрощенную) версию:

function isNullOrWhitespace( input ) {
  return !input || !input.trim();
}

Ответ 3

нет, но вы можете написать один

function isNullOrWhitespace( str )
{
  // Does the string not contain at least 1 non-whitespace character?
  return !/\S/.test( str );
}

Ответ 4

document.formname.formelement.value == ''  

сделал трюк для меня!

изменить: проверить эту ссылку

Ответ 5

Вы можете использовать regex /\S/ для проверки, является ли поле нулевым или пробельным.

Пример:

if(textBoxVal.match(/\S/){
    // field is invalid (empty or spaces)
}

Ответ 6

trim() - полезная строковая функция, которая отсутствует в JS.

Добавьте его:

String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g,"") }

Затем: if (document.form.field.value.trim() == "")

Ответ 7

Вы должны написать свой собственный:

function isNullOrWhitespace(strToCheck) {
    var whitespaceChars = "\s";
    return (strToCheck === null || whitespaceChars.indexOf(strToCheck) != -1);
}

Ответ 8

Вытягивая соответствующие части двух лучших ответов, вы получаете что-то вроде этого:

function IsNullOrWhitespace(input) {
    if (typeof input === 'undefined' || input == null) return true;
    return !/\S/.test(input); // Does it fail to find a non-whitespace character?
}

Остальная часть этого ответа предназначена только тем, кто интересуется различиями в производительности между этим ответом и ответом Декстера. Оба будут давать одинаковые результаты, но этот код немного быстрее.

На моем компьютере, используя тест QUnit по следующему коду:

var count = 100000;
var start = performance.now();
var str = "This is a test string.";
for (var i = 0; i < count; ++i) {
    IsNullOrWhitespace(null);
    IsNullOrWhitespace(str);
}
var end = performance.now();
var elapsed = end - start;
assert.ok(true, "" + count + " runs of IsNullOrWhitespace() took: " + elapsed + " milliseconds.");

Результаты:

  • Метод RegExp.replace = 33 - 37 миллисекунд
  • Метод RegExp.test = 11 - 14 миллисекунд