Игнорирование пробела в начале строки

173
16 августа 2018, 03:10

Как сделать так, что бы в функция возвращала true если строка str == str_1 даже если перед словом стоят пробелы?

function STR(str,str_1) { 
     
    var str_2 = str.indexOf(' ') !== -1; 
     
    if(str_1 == str_2) { 
        return true 
    } 
     
    return false 
} 
 
console.log(STR(" Маша","Маша"));

Answer 1

Как сделать так, что бы в функция возвращала true если строка str == str_1 даже если перед словом стоят пробелы?

function STR(str, str_1) { 
 
 // Удалит все пробелы вида "  M   "  
  if (str_1.trim() === str.trim()) { 
    return true 
  } 
 
  return false 
} 
 
 
console.log(STR(" Маша", "Маша")); 
console.log(STR(" Маша", "Маша  ")); 
console.log(STR(" Маша", "      Маша  "));

function STR(str, str_1, same_case = false) { 
  // Если регистр не важен 
  if (same_case && str_1.trim().toLowerCase() === str.trim().toLowerCase()) { 
    return true; 
  } 
  // Удалит все пробелы вида "  M   "  
  if (str_1.trim() === str.trim()) {// Учитывает регистр 
    return true 
  } 
 
  return false 
} 
 
 
console.log(STR(" Маша", "Маша")); 
console.log(STR(" Маша", "Маша  ")); 
console.log(STR(" Маша", "      Маша  ")); 
console.log(STR(" other", "      Other  ")); 
console.log(STR(" other", "      Other  ", true)); // Only for you =)

Метод trim()

Answer 2

Строка может быть представлена и не одним словом, и это допущение весьма естественно. При этом в сравниваемых строках может быть не только несколько слов, но и несколько пробелов между последними.

String.prototype.equals = function(str, spc) {
   var arr = spc ? [this, str].map(i => {return i.replace(/\s+/g, ' ')}) : [this, str];
   return !!arr.reduce((i, j) => { return i.toLowerCase().trim() === j.toLowerCase().trim() ? i : NaN});
}
console.log('test'.equals('  test'));                                // true
console.log('Мама мыла раму'.equals('  мама  мыла  раму   '));       // false (не учли дополнительные пробелы между словами)
console.log('Мама мыла раму'.equals('  мама  мыла  раму   ', true)); // true (пробелы между словами учтены)
Answer 3

function STR(str,str_1) { 
     
    if(str.trim() == str_1.trim()) { 
        return true 
    } 
     
    return false 
} 
 
console.log(STR(" Маша","Маша"));

READ ALSO
Как растянуть весь контент на всю высоту экрана?

Как растянуть весь контент на всю высоту экрана?

Как сделать так, чтобы секция автоматически подбирала высоту и заполняла все свободное место? Те

214
Переместить изображение по нажатию

Переместить изображение по нажатию

Хотел сделать перемещение изображения по нажатию, написал код, он не работает:

190