簡體   English   中英

修剪前導和尾隨空間

[英]Trim Leading and Trailing Spaces

從名稱“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 ');

我沒有在那里看到一個問題...但我看到代碼的問題:

  • 您正在使用賦值運算符=您應該使用比較運算符==
  • 將字符串與字符串'undefined'比較不是檢查屬性是否未定義的方法。
  • trim方法僅存在於IE的最新版本(9)中。
  • 您使用字符串而不是對象調用函數。

碼:

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/

你應該做

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

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));

看看這里的代碼並閱讀評論。 我們創建一個person對象,用前導和尾隨空格設置他的名字。 我們將它傳遞給我們測試它是否定義的函數。 如果是,我們返回修剪過的名稱。

以下是編輯。

var person = {}; //creates the object "person"
person.name = prompt('Please enter a name'); //defines name as a property
function trimName(person) { //and gives it a value
// If the property "name" is undefined
// return undefined
if (name === undefined) { //returns the code state "undefined"
  return undefined; // if name is undefined
} else if (person.name === '') { //returns a prompt if no name is entered
  return 'Please enter a name';
} else {
// Trim the "name" property, ensure it is a string
return (person.name + '').trim(); //trims leading/trailing spaces
}
}
trimName(person); //defines object person as a variable of function trimName

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM