Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 给定用户输入的数据,将其字段与我的数据库中的字段匹配_Javascript_Regex_Pattern Matching - Fatal编程技术网

Javascript 给定用户输入的数据,将其字段与我的数据库中的字段匹配

Javascript 给定用户输入的数据,将其字段与我的数据库中的字段匹配,javascript,regex,pattern-matching,Javascript,Regex,Pattern Matching,当用户上传带有标题的电子表格时,我将其解析为JSON。然后,我需要将它们的字段与数据库中的字段相匹配。例如,如果他们上传了fname和lname字段,我会识别它们,并将它们连接到数据库中的全名字段中 我的想法是基于正则表达式、列名和列位置编写模式。例如,姓氏的标题名可能以Last或至少L开头。这些值可能具有[a-zA-Z]{2,20}的正则表达式模式,而前一列的值可能是first Name,可能遵循相同的正则表达式模式。我将保持我的正则表达式模式简单&扫描记录样本以排除像Jo-Ann O'hoo

当用户上传带有标题的电子表格时,我将其解析为JSON。然后,我需要将它们的字段与数据库中的字段相匹配。例如,如果他们上传了fname和lname字段,我会识别它们,并将它们连接到数据库中的全名字段中

我的想法是基于正则表达式、列名和列位置编写模式。例如,姓氏的标题名可能以Last或至少L开头。这些值可能具有[a-zA-Z]{2,20}的正则表达式模式,而前一列的值可能是first Name,可能遵循相同的正则表达式模式。我将保持我的正则表达式模式简单&扫描记录样本以排除像Jo-Ann O'hoolihan这样的边缘案例


这种方法听起来合理吗?有人已经创造了类似的东西吗?当然,我会让用户确认算法猜对了,但奇怪的是,我在谷歌上找到的关于模式的信息太少了。欢迎任何想法、评论或消息来源

您可以尝试以下方法:

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设置为较短的字符串后,让每个字符在目标上匹配

在本例中,给定名为First Name、F Name、FName甚至F-Name、First N、FN等的JSON属性,它将与数据库名FName匹配