2015-04-20 1 views
0

Когда пользователь загружает таблицу с заголовками, я разбираю ее в JSON. Затем мне нужно сопоставить свои поля с полями в моей базе данных. Например, если они загрузили поле fname и lname, я бы узнал их и объединил в поле full name в моей базе данных.Данные, введенные пользователем, соответствуют их полям полям в моей базе данных

Моя идея - написать шаблоны, основанные на регулярном выражении, имени столбца и позиции столбца. Например, Last Name имеет название заголовка, которое, вероятно, начинается с «Last» или, по крайней мере, «L». Значения, вероятно, имеют шаблон регулярного выражения [a-zA-Z]{2,20}, а значения предыдущего столбца (предположительно имя), вероятно, следует за одним и тем же шаблоном регулярного выражения. Я сохраню свой шаблон регулярного выражения & сканирует образец записей, чтобы исключить крайние случаи, такие как «Jo Ann O'hoolihan».

Подходит ли этот подход разумно? Кто-нибудь уже создал что-то подобное? Конечно, я попрошу, чтобы пользователь подтвердил, что алгоритм правильно догадался, но мне кажется странным, как мало информации, которую я обнаружил при поиске по шаблону. Любые идеи, комментарии или источники приветствуются!

ответ

0

Вы могли бы попробовать что-то вроде этого:

var fieldName = "First Name", dbColumn = "FName", s1, s2; 
fieldName.length < dbColumn.length ? (s1 = fieldName, s2 = dbColumn) : (s1 = dbColumn, s2 = fieldName); // (s1 must be the shorter string) 
RegExp(s1.split("").join("(.*?)"), 'gi').test(s2); 

После внесения s1 короткой строки, имеют каждый матч символов через цель.

В этом примере, учитывая свойство JSON с именем «Имя», «Имя F», «FName» или даже «F-NAME», «First N», «FN» и т. Д., Оно будет соответствовать к имени базы данных «FName».

Смежные вопросы