Как не считать пробелы в поле поиска? [Дубликат]

В то время как обещания и обратные вызовы хорошо работают во многих ситуациях, боль в задней части выражает нечто вроде:

if (!name) {
  name = async1();
}
async2(name);

. В итоге вы пройдете через async1; проверьте, не определено ли name или нет, и соответственно вызовите обратный вызов.

async1(name, callback) {
  if (name)
    callback(name)
  else {
    doSomething(callback)
  }
}

async1(name, async2)

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

Fibers помогает в решении проблемы.

var Fiber = require('fibers')

function async1(container) {
  var current = Fiber.current
  var result
  doSomething(function(name) {
    result = name
    fiber.run()
  })
  Fiber.yield()
  return result
}

Fiber(function() {
  var name
  if (!name) {
    name = async1()
  }
  async2(name)
  // Make any number of async calls from here
}

Вы можете проверить проект здесь .

3
задан Jason P 15 October 2014 в 19:41
поделиться

3 ответа

Используйте это:

var myString = getElementById("input").value;
var withoutSpace = myString.replace(/ /g,"");
var length = withoutSpace.length;
6
ответ дан Eric Alberson 31 August 2018 в 10:20
поделиться

Вы можете считать белые пробелы и вычесть их из длины строки, например

var my_string = "John Doe's iPhone6";
var spaceCount = (my_string.split(" ").length - 1);
console.log(spaceCount);
console.log('total count:- ', my_string.length - spaceCount)
-1
ответ дан Hemant Nagarkoti 31 August 2018 в 10:20
поделиться

Чтобы игнорировать все пробелы (новые строки, пробелы, вкладки), используйте квант \ s:

// get the string
var myString = getElementById("input").value;

// use the \s quanitifier to remove all whitespace
// then retrieve the length
var length = myString.replace(/\s/g, "").length;
7
ответ дан SReject 31 August 2018 в 10:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: