Здравствуйте.
Делаем таблицу, c поиском.
Чтобы облегчить поиск я делаю одномерный массив строк таблицы. Например:
["|Павлов|Артём|Николайвна|65", "|Филиппов|Артём|Константинвна|8", "|Троицкий|Николай|Артёмвна|12", "|Покровский|Вадим|Артёмвич|72"]
Далее необходимо написать регулярное выражение составленное из слов введённых в поиск так, чтобы он нашёл строку в которой есть оба слова, вне зависимости от их порядка.
Пока что мы сделали так:
function createRegExps(text, flags) {
if (text.lastIndexOf(" ") == 0)
text = text.slice(0, -1);
var texts = text.split(/\s+/),
regExps = "";
for (var i = 0; i < texts.length; i++) {
regExps += "(.*" + texts[i] + ".*)"
}
return new RegExp(regExps, flags);
}
Но такое регулярное выражение ищет только если второе слово встречается после первого.
На отчества внимания не обращайте, они генерируются из имен и халтурно (тестовые данные).