Обрезать ведущие и конечные пробелы - PullRequest
4 голосов
/ 10 февраля 2012

Обрезать начальные и конечные пробелы из имени "undefined".

trimName принимает человека в качестве аргумента.Человек всегда будет объектом.Возвращает undefined, если имя не определено.В противном случае вернуть урезанное имя.

var person = {};
var trimmedName;
person.name;
function trimName(person) {
  // If you do not set this variable to a value, it will be
  // undefined.
  // Do a check here to see if a person's name is defined.
  if (person.name = 'undefined') {
    return 'undefined';
  }
  else {
    trimmedName = person.name.trim();
    return trimmedName;
  }
}
trimName(' sam ');

Ответы [ 3 ]

3 голосов
/ 10 февраля 2012

Ï не вижу вопроса там ... но я вижу проблемы с кодом:

  • Вы используете оператор присваивания =, где вы должны использовать оператор сравнения ==.
  • Сравнение строки со строкой 'undefined' - это не способ проверить, является ли свойство неопределенным.
  • Метод trim существует только в последней версии (9) IE.
  • Вы вызываете функцию со строкой вместо объекта.

Код:

function trimName(person) {
  var trimmed;
  if (typeof person.name == 'undefined') {
    trimmed = 'undefined';
  } else {
    trimmed = person.name.replace(/(^\s+|\s+$)/g, '');
  }
  return trimmed;
}

var trimmedName = trimName({ name: ' sam ' });

Демо: http://jsfiddle.net/Guffa/vCkSq/

2 голосов
/ 10 февраля 2012

Вы должны сделать

var personTest = {name: '  sam'};

function trimName(person) {
  // If you do not set this variable to a value, it will be
  // undefined.
  // Do a check here to see if a person's name is defined.
  if (typeof person.name === 'undefined') {
    return 'undefined';
  }
  else {
    var trimmedName = person.name.trim();
    return trimmedName;
  }
}
alert(trimName(' sam '));
alert(trimName(personTest));

pastebin http://jsbin.com/oqovog/edit#source

0 голосов
/ 10 февраля 2012
function trimName(person) {
  // Check if the name of the person was defined
  // If not, return undefined
  if (person.name == 'undefined') {
    return 'undefined';
  }
  else {
    // Otherwise trim the name and return it.
    return person.name.replace(/^\s+|\s+$/g, '');
  }
}

// Create a person, set his name to " sam " with the spaces.
var person = {};
person.name = " sam ";

// Pass sam (the person object) to your function
// Then alert() the result.
alert(trimName(person));

Посмотрите код здесь и прочитайте комментарии.Мы создаем объект человека, устанавливаем его имя с пробелом в начале и в конце.Мы передаем его функции, в которой мы проверяем, определено ли оно.Если это так, мы возвращаем обрезанное имя.

Следующее редактируется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...