updated 重表关系添加,检索优化
增加快速检索功能
This commit is contained in:
1 parent
470ee24c45
commit
8e0475864a
10 files changed
+124
-80
No files matched your search
Vendored
+2
-2
@@ -8,6 +8,6 @@
|
|||||||
* Released under the MIT License
|
* Released under the MIT License
|
||||||
* https://github.com/mumuy/relationship
|
* https://github.com/mumuy/relationship
|
||||||
*
|
*
|
||||||
* Created on: 2022-12-07
|
* Created on: 2022-12-09
|
||||||
*/
|
*/
|
||||||
!function(s,f){"object"==typeof exports&&"object"==typeof module?module.exports=f():"function"==typeof define&&define.amd?define([],f):"object"==typeof exports?exports.relationship=f():s.relationship=f()}(this,(()=>(()=>{"use strict";var s={d:(f,x)=>{for(var d in x)s.o(x,d)&&!s.o(f,d)&&Object.defineProperty(f,d,{enumerable:!0,get:x[d]})},o:(s,f)=>Object.prototype.hasOwnProperty.call(s,f)},f={};s.d(f,{default:()=>B});const x=[{exp:/^(\S+?)(应该|得)?(称呼|叫|喊)(\S+?)(什么|啥)??$/,opt:s=>({text:s[4],target:s[1]})},{exp:/^(\S+?)(应该|得)?(如何|怎么)(称呼|叫|喊)(\S+?)??$/,opt:s=>({text:s[5],target:s[1]})},{exp:/^(\S+?)是(\S+?)的(谁|什么|什么亲戚|啥亲戚|什么人)??$/,opt:s=>({text:s[1],target:s[2],type:s[1].indexOf("的")>-1?"default":"chain"})},{exp:/^(\S+?)(应该|得)?管(\S+?)叫(什么|啥)??$/,opt:s=>({text:s[3],target:s[1]})},{exp:/^(\S+?)(和|与)(\S+?)(之间)?是(什么|啥)关系??$/,opt:s=>({text:s[1],target:s[3],type:"pair"})},{exp:/^(\S+?)对于(\S+?)是(什么|啥)关系??$/,opt:s=>({text:s[1],target:s[2],type:"chain"})},{exp:/^(\S+?)(指的)?是(什么|啥)(意思|关系|亲戚关系|辈分|人)??$/,opt:s=>({text:s[1],type:"chain"})},{exp:/^(\S+?)(应该|得)?(称呼|叫|喊)(什么|啥)??$/,opt:s=>({text:s[1]})},{exp:/^(\S+?)(应该|得)?(如何|怎么)(称呼|叫|喊)??$/,opt:s=>({text:s[1]})},{exp:/^(\S+?)是(谁|什么|什么亲戚|啥亲戚|什么人|什么辈分|啥辈分)??$/,opt:s=>({text:s[1],type:s[1].indexOf("的")>-1?"default":"chain"})}];const d=[{exp:/^(.+)&o([^#]+)&l/g,str:"$1$2"},{exp:/^(.+)&l([^#]+)&o/g,str:"$1$2"},{exp:/^(.+)?,o([sb](&\d+)?)([^#]+)&l/g,str:"$1,x$2$4"},{exp:/^(.+)?,l([sb](&\d+)?)([^#]+)&o/g,str:"$1,x$2$4"},{exp:/(,o[sb](&\d+)?)+(,o[sb])(&\d+)?/,str:"$3$4"},{exp:/(,l[sb](&\d+)?)+(,l[sb])(&\d+)?/,str:"$3$4"},{exp:/^(.*,[fh1])(,[olx][sb](&\d+)?)+,[olx]b(.*)$/,str:"$1,xb$4#$1$4"},{exp:/^(.*,[mw0])(,[olx][sb](&\d+)?)+,[olx]s(.*)$/,str:"$1,xs$4#$1$4"},{exp:/(,[fh1])(,[olx][sb](&\d+)?)+,[olx]s/g,str:"$1,xs"},{exp:/(,[mw0])(,[olx][sb](&\d+)?)+,[olx]b/g,str:"$1,xb"},{exp:/^,[olx][sb](&\d+)?,[olx]b(.+)?$/,str:",xb$2#$2"},{exp:/^,[olx][sb](&\d+)?,[olx]s(.+)?$/,str:",xs$2#$2"},{exp:/^,x([sb])$/,str:",o$1#,l$1"},{exp:/m,h/g,str:"f"},{exp:/f,w/g,str:"m"},{exp:/,[xol][sb](&\d+)?(,[mf])/g,str:"$2"},{exp:/,[mf],d(&\d+)/,str:",xs$1"},{exp:/,[mf],d&([ol])/,str:",$1s"},{exp:/,[mf],s(&\d+)/,str:",xb$1"},{exp:/,[mf],s&([ol])/,str:",$1b"},{exp:/^(.*,[fh1]|[xol]b(&\d+)?),[mf],s(.*)$/,str:"$1,xb$3#$1$3"},{exp:/^(.*,[mw0]|[xol]s(&\d+)?),[mf],d(.*)$/,str:"$1,xs$3#$1$3"},{exp:/(,[mw0]|[xol]s(&\d+)?),[mf],s/,str:"$1,xb"},{exp:/(,[fh1]|[xol]b(&\d+)?),[mf],d/,str:"$1,xs"},{exp:/^,[mf],s(.+)?$/,str:",xb$1#,1$1"},{exp:/^,[mf],d(.+)?$/,str:",xs$1#,0$1"},{exp:/,[ds](&[ol\d]+)?,[olx]b(&\d+)/g,str:",s$2"},{exp:/,[ds](&[ol\d]+)?,[olx]s(&\d+)/g,str:",d$2"},{exp:/,[ds]&o,ob/g,str:",s&o"},{exp:/,[ds]&o,os/g,str:",d&o"},{exp:/,[ds]&l,lb/g,str:",s&l"},{exp:/,[ds]&l,ls/g,str:",d&l"},{exp:/,[ds](&[ol\d]+)?,[olx]s(&\d+)?/g,str:",d$2"},{exp:/,[ds](&[ol\d]+)?,[olx]b(&\d+)?/g,str:",s$2"},{exp:/(,[mwd0]|,[olx]s)(&[ol\d]+)?,[ds](&[ol\d]+)?,m/g,str:"$1"},{exp:/(,[mwd0]|,[olx]s)(&[ol\d]+)?,[ds](&[ol\d]+)?,f/g,str:"$1,h"},{exp:/(,[fhs1]|,[olx]b)(&[ol\d]+)?,[ds](&[ol\d]+)?,f/g,str:"$1"},{exp:/(,[fhs1]|,[olx]b)(&[ol\d]+)?,[ds](&[ol\d]+)?,m/g,str:"$1,w"},{exp:/^,[ds],m(.+)?$/,str:",w$1#$1"},{exp:/^,[ds],f(.+)?$/,str:",h$1#$1"},{exp:/,[wh](,[ds])/g,str:"$1"},{exp:/,w,h|,h,w/g,str:""},{exp:/(.+)?\[([^\|]+?)\|([^\[\]]*\|[^\[\]]*)\](.+)?/g,str:"$1$2$4#$1[$3]$4"},{exp:/(.+)?\[([^\[\]\|]+?)\|([^\[\]\|]+?)?\](.+)?/g,str:"$1$2$4#$1$3$4"}],m=[{exp:/^从表/,arr:["从父姑表","从父舅表","从父姨表","从母姑表","从母舅表","从母叔表"]},{exp:/^表表/,arr:["姑表叔表","姑表姑表","姑表舅表","姑表姨表","舅表叔表","舅表姑表","舅表舅表","舅表姨表"]},{exp:/^([夫妻内外]?)表/,arr:["$1姑表","$1舅表"]},{exp:/^([姑舅])表(?=[^伯叔])/,arr:["$1表伯","$1表叔"]},{exp:/^姻/,arr:["姑姻","姨姻","姊妹姻","女姻"]},{exp:/^眷/,arr:["叔眷","舅眷","兄弟眷","男眷"]},{exp:/^亲家/,arr:["姊妹姻","兄弟眷"]},{exp:/^([堂表姨]?)([曾高天烈太远鼻]?)(祖?)([伯叔姑舅姨])/,arr:["$1$4$2$3"]},{exp:/^([曾高天烈太远鼻]?)祖?王姑/,arr:["姑$1祖母"]},{exp:/^([曾玄来晜仍云耳])([侄甥])/,arr:["$2$1"]},{exp:/^外表([伯叔姑舅姨])/,arr:["姑表$1外","舅表$1外"]},{exp:/([堂表姨]?)外甥/,arr:["$1甥"]},{exp:/^([舅叔])([曾玄外]*)孙/,arr:["$1侄$2孙"]},{exp:/^([姨姑])([曾玄外]*)孙/,arr:["$1甥$2孙"]},{exp:/([孙甥侄])$/,arr:["$1男","$1女"]},{exp:/([姑舅姨叔])([孙外]*)([男女])$/,arr:["$1表侄$2$3","$1表甥$2$3"]},{exp:/祖$/,arr:["祖父"]},{exp:/嫂$/,arr:["兄妇"]},{exp:/女儿$/,arr:["女"]}],b={晜:"兄",哥:"兄",姐:"姊",侄:"姪",婿:"壻",祖父:"王父",祖母:"王母",弟媳:"弟妇",嫂:"兄妇",孙女婿:"孙婿",甥女婿:"甥婿",侄女婿:"侄Line truncated
|
!function(s,f){"object"==typeof exports&&"object"==typeof module?module.exports=f():"function"==typeof define&&define.amd?define([],f):"object"==typeof exports?exports.relationship=f():s.relationship=f()}(this,(()=>(()=>{"use strict";var s={d:(f,x)=>{for(var d in x)s.o(x,d)&&!s.o(f,d)&&Object.defineProperty(f,d,{enumerable:!0,get:x[d]})},o:(s,f)=>Object.prototype.hasOwnProperty.call(s,f)},f={};s.d(f,{default:()=>D});const x=[{exp:/^(\S+?)(应该|得)?(称呼|叫|喊)(\S+?)(什么|啥)??$/,opt:s=>({text:s[4],target:s[1]})},{exp:/^(\S+?)(应该|得)?(如何|怎么)(称呼|叫|喊)(\S+?)??$/,opt:s=>({text:s[5],target:s[1]})},{exp:/^(\S+?)是(\S+?)的(谁|什么|什么亲戚|啥亲戚|什么人)??$/,opt:s=>({text:s[1],target:s[2],type:s[1].indexOf("的")>-1?"default":"chain"})},{exp:/^(\S+?)(应该|得)?管(\S+?)叫(什么|啥)??$/,opt:s=>({text:s[3],target:s[1]})},{exp:/^(\S+?)(和|与)(\S+?)(之间)?是(什么|啥)关系??$/,opt:s=>({text:s[1],target:s[3],type:"pair"})},{exp:/^(\S+?)对于(\S+?)是(什么|啥)关系??$/,opt:s=>({text:s[1],target:s[2],type:"chain"})},{exp:/^(\S+?)(指的)?是(什么|啥)(意思|关系|亲戚关系|辈分|人)??$/,opt:s=>({text:s[1],type:"chain"})},{exp:/^(\S+?)(应该|得)?(称呼|叫|喊)(什么|啥)??$/,opt:s=>({text:s[1]})},{exp:/^(\S+?)(应该|得)?(如何|怎么)(称呼|叫|喊)??$/,opt:s=>({text:s[1]})},{exp:/^(\S+?)是(谁|什么|什么亲戚|啥亲戚|什么人|什么辈分|啥辈分)??$/,opt:s=>({text:s[1],type:s[1].indexOf("的")>-1?"default":"chain"})}];const d=[{exp:/^(.+)&o([^#]+)&l/g,str:"$1$2"},{exp:/^(.+)&l([^#]+)&o/g,str:"$1$2"},{exp:/^(.+)?,o([sb](&\d+)?)([^#]+)&l/g,str:"$1,x$2$4"},{exp:/^(.+)?,l([sb](&\d+)?)([^#]+)&o/g,str:"$1,x$2$4"},{exp:/(,o[sb](&\d+)?)+(,o[sb])(&\d+)?/,str:"$3$4"},{exp:/(,l[sb](&\d+)?)+(,l[sb])(&\d+)?/,str:"$3$4"},{exp:/^(.*,[fh1])(,[olx][sb](&\d+)?)+,[olx]b(.*)$/,str:"$1,xb$4#$1$4"},{exp:/^(.*,[mw0])(,[olx][sb](&\d+)?)+,[olx]s(.*)$/,str:"$1,xs$4#$1$4"},{exp:/(,[fh1])(,[olx][sb](&\d+)?)+,[olx]s/g,str:"$1,xs"},{exp:/(,[mw0])(,[olx][sb](&\d+)?)+,[olx]b/g,str:"$1,xb"},{exp:/^,[olx][sb](&\d+)?,[olx]b(.+)?$/,str:",xb$2#$2"},{exp:/^,[olx][sb](&\d+)?,[olx]s(.+)?$/,str:",xs$2#$2"},{exp:/^,x([sb])$/,str:",o$1#,l$1"},{exp:/m,h/g,str:"f"},{exp:/f,w/g,str:"m"},{exp:/,[xol][sb](&\d+)?(,[mf])/g,str:"$2"},{exp:/,[mf],d(&\d+)/,str:",xs$1"},{exp:/,[mf],d&([ol])/,str:",$1s"},{exp:/,[mf],s(&\d+)/,str:",xb$1"},{exp:/,[mf],s&([ol])/,str:",$1b"},{exp:/^(.*,[fh1]|[xol]b(&\d+)?),[mf],s(.*)$/,str:"$1,xb$3#$1$3"},{exp:/^(.*,[mw0]|[xol]s(&\d+)?),[mf],d(.*)$/,str:"$1,xs$3#$1$3"},{exp:/(,[mw0]|[xol]s(&\d+)?),[mf],s/,str:"$1,xb"},{exp:/(,[fh1]|[xol]b(&\d+)?),[mf],d/,str:"$1,xs"},{exp:/^,[mf],s(.+)?$/,str:",xb$1#,1$1"},{exp:/^,[mf],d(.+)?$/,str:",xs$1#,0$1"},{exp:/,[ds](&[ol\d]+)?,[olx]b(&\d+)/g,str:",s$2"},{exp:/,[ds](&[ol\d]+)?,[olx]s(&\d+)/g,str:",d$2"},{exp:/,[ds]&o,ob/g,str:",s&o"},{exp:/,[ds]&o,os/g,str:",d&o"},{exp:/,[ds]&l,lb/g,str:",s&l"},{exp:/,[ds]&l,ls/g,str:",d&l"},{exp:/,[ds](&[ol\d]+)?,[olx]s(&\d+)?/g,str:",d$2"},{exp:/,[ds](&[ol\d]+)?,[olx]b(&\d+)?/g,str:",s$2"},{exp:/(,[mwd0]|,[olx]s)(&[ol\d]+)?,[ds](&[ol\d]+)?,m/g,str:"$1"},{exp:/(,[mwd0]|,[olx]s)(&[ol\d]+)?,[ds](&[ol\d]+)?,f/g,str:"$1,h"},{exp:/(,[fhs1]|,[olx]b)(&[ol\d]+)?,[ds](&[ol\d]+)?,f/g,str:"$1"},{exp:/(,[fhs1]|,[olx]b)(&[ol\d]+)?,[ds](&[ol\d]+)?,m/g,str:"$1,w"},{exp:/^,[ds],m(.+)?$/,str:",w$1#$1"},{exp:/^,[ds],f(.+)?$/,str:",h$1#$1"},{exp:/,[wh](,[ds])/g,str:"$1"},{exp:/,w,h|,h,w/g,str:""},{exp:/(.+)?\[([^\|]+?)\|([^\[\]]*\|[^\[\]]*)\](.+)?/g,str:"$1$2$4#$1[$3]$4"},{exp:/(.+)?\[([^\[\]\|]+?)\|([^\[\]\|]+?)?\](.+)?/g,str:"$1$2$4#$1$3$4"}],m=[{exp:/^从表/,arr:["从父姑表","从父舅表","从父姨表","从母姑表","从母舅表","从母叔表"]},{exp:/^表表/,arr:["姑表叔表","姑表姑表","姑表舅表","姑表姨表","舅表叔表","舅表姑表","舅表舅表","舅表姨表"]},{exp:/^([夫妻内外]?)表/,arr:["$1姑表","$1舅表"]},{exp:/^([姑舅])表(?=[^伯叔])/,arr:["$1表伯","$1表叔"]},{exp:/^姻/,arr:["姑姻","姨姻","姊妹姻","女姻"]},{exp:/^眷/,arr:["叔眷","舅眷","兄弟眷","男眷"]},{exp:/^亲家/,arr:["姊妹姻","兄弟眷"]},{exp:/^([堂表姨]?)([曾高天烈太远鼻]?)(祖?)([伯叔姑舅姨])/,arr:["$1$4$2$3"]},{exp:/^([曾高天烈太远鼻]?)祖?王姑/,arr:["姑$1祖母"]},{exp:/^([曾玄来晜仍云耳])([侄甥])/,arr:["$2$1"]},{exp:/^外表([伯叔姑舅姨])/,arr:["姑表$1外","舅表$1外"]},{exp:/([堂表姨]?)外甥/,arr:["$1甥"]},{exp:/^([舅叔])([曾玄外]*)孙/,arr:["$1侄$2孙"]},{exp:/^([姨姑])([曾玄外]*)孙/,arr:["$1甥$2孙"]},{exp:/([孙甥侄])$/,arr:["$1男","$1女"]},{exp:/([姑舅姨叔])([孙外]*)([男女])$/,arr:["$1表侄$2$3","$1表甥$2$3"]},{exp:/祖$/,arr:["祖父"]},{exp:/嫂$/,arr:["兄妇"]},{exp:/女儿$/,arr:["女"]}],b={晜:"兄",哥:"兄",姐:"姊",侄:"姪",婿:"壻",祖父:"王父",祖母:"王母",弟媳:"弟妇",嫂:"兄妇",孙女婿:"孙婿",甥女婿:"甥婿",侄女婿:"侄Line truncated
|
||||||
Vendored
+2
-2
@@ -8,6 +8,6 @@
|
|||||||
* Released under the MIT License
|
* Released under the MIT License
|
||||||
* https://github.com/mumuy/relationship
|
* https://github.com/mumuy/relationship
|
||||||
*
|
*
|
||||||
* Created on: 2022-12-07
|
* Created on: 2022-12-09
|
||||||
*/
|
*/
|
||||||
!function(s,f){"object"==typeof exports&&"object"==typeof module?module.exports=f():"function"==typeof define&&define.amd?define([],f):"object"==typeof exports?exports.relationship=f():s.relationship=f()}(this,(()=>(()=>{"use strict";var s={d:(f,x)=>{for(var d in x)s.o(x,d)&&!s.o(f,d)&&Object.defineProperty(f,d,{enumerable:!0,get:x[d]})},o:(s,f)=>Object.prototype.hasOwnProperty.call(s,f)},f={};s.d(f,{default:()=>B});const x=[{exp:/^(\S+?)(應該|得)?(稱呼|叫|喊)(\S+?)(什麼|啥)??$/,opt:s=>({text:s[4],target:s[1]})},{exp:/^(\S+?)(應該|得)?(如何|怎麼)(稱呼|叫|喊)(\S+?)??$/,opt:s=>({text:s[5],target:s[1]})},{exp:/^(\S+?)是(\S+?)的(誰|什麼|什麼親戚|啥親戚|什麼人)??$/,opt:s=>({text:s[1],target:s[2],type:s[1].indexOf("的")>-1?"default":"chain"})},{exp:/^(\S+?)(應該|得)?管(\S+?)叫(什麼|啥)??$/,opt:s=>({text:s[3],target:s[1]})},{exp:/^(\S+?)(和|與)(\S+?)(之間)?是(什麼|啥)關系??$/,opt:s=>({text:s[1],target:s[3],type:"pair"})},{exp:/^(\S+?)對於(\S+?)是(什麼|啥)關系??$/,opt:s=>({text:s[1],target:s[2],type:"chain"})},{exp:/^(\S+?)(指的)?是(什麼|啥)(意思|關系|親戚關系|輩分|人)??$/,opt:s=>({text:s[1],type:"chain"})},{exp:/^(\S+?)(應該|得)?(稱呼|叫|喊)(什麼|啥)??$/,opt:s=>({text:s[1]})},{exp:/^(\S+?)(應該|得)?(如何|怎麼)(稱呼|叫|喊)??$/,opt:s=>({text:s[1]})},{exp:/^(\S+?)是(誰|什麼|什麼親戚|啥親戚|什麼人|什麼輩分|啥輩分)??$/,opt:s=>({text:s[1],type:s[1].indexOf("的")>-1?"default":"chain"})}];const d=[{exp:/^(.+)&o([^#]+)&l/g,str:"$1$2"},{exp:/^(.+)&l([^#]+)&o/g,str:"$1$2"},{exp:/^(.+)?,o([sb](&\d+)?)([^#]+)&l/g,str:"$1,x$2$4"},{exp:/^(.+)?,l([sb](&\d+)?)([^#]+)&o/g,str:"$1,x$2$4"},{exp:/(,o[sb](&\d+)?)+(,o[sb])(&\d+)?/,str:"$3$4"},{exp:/(,l[sb](&\d+)?)+(,l[sb])(&\d+)?/,str:"$3$4"},{exp:/^(.*,[fh1])(,[olx][sb](&\d+)?)+,[olx]b(.*)$/,str:"$1,xb$4#$1$4"},{exp:/^(.*,[mw0])(,[olx][sb](&\d+)?)+,[olx]s(.*)$/,str:"$1,xs$4#$1$4"},{exp:/(,[fh1])(,[olx][sb](&\d+)?)+,[olx]s/g,str:"$1,xs"},{exp:/(,[mw0])(,[olx][sb](&\d+)?)+,[olx]b/g,str:"$1,xb"},{exp:/^,[olx][sb](&\d+)?,[olx]b(.+)?$/,str:",xb$2#$2"},{exp:/^,[olx][sb](&\d+)?,[olx]s(.+)?$/,str:",xs$2#$2"},{exp:/^,x([sb])$/,str:",o$1#,l$1"},{exp:/m,h/g,str:"f"},{exp:/f,w/g,str:"m"},{exp:/,[xol][sb](&\d+)?(,[mf])/g,str:"$2"},{exp:/,[mf],d(&\d+)/,str:",xs$1"},{exp:/,[mf],d&([ol])/,str:",$1s"},{exp:/,[mf],s(&\d+)/,str:",xb$1"},{exp:/,[mf],s&([ol])/,str:",$1b"},{exp:/^(.*,[fh1]|[xol]b(&\d+)?),[mf],s(.*)$/,str:"$1,xb$3#$1$3"},{exp:/^(.*,[mw0]|[xol]s(&\d+)?),[mf],d(.*)$/,str:"$1,xs$3#$1$3"},{exp:/(,[mw0]|[xol]s(&\d+)?),[mf],s/,str:"$1,xb"},{exp:/(,[fh1]|[xol]b(&\d+)?),[mf],d/,str:"$1,xs"},{exp:/^,[mf],s(.+)?$/,str:",xb$1#,1$1"},{exp:/^,[mf],d(.+)?$/,str:",xs$1#,0$1"},{exp:/,[ds](&[ol\d]+)?,[olx]b(&\d+)/g,str:",s$2"},{exp:/,[ds](&[ol\d]+)?,[olx]s(&\d+)/g,str:",d$2"},{exp:/,[ds]&o,ob/g,str:",s&o"},{exp:/,[ds]&o,os/g,str:",d&o"},{exp:/,[ds]&l,lb/g,str:",s&l"},{exp:/,[ds]&l,ls/g,str:",d&l"},{exp:/,[ds](&[ol\d]+)?,[olx]s(&\d+)?/g,str:",d$2"},{exp:/,[ds](&[ol\d]+)?,[olx]b(&\d+)?/g,str:",s$2"},{exp:/(,[mwd0]|,[olx]s)(&[ol\d]+)?,[ds](&[ol\d]+)?,m/g,str:"$1"},{exp:/(,[mwd0]|,[olx]s)(&[ol\d]+)?,[ds](&[ol\d]+)?,f/g,str:"$1,h"},{exp:/(,[fhs1]|,[olx]b)(&[ol\d]+)?,[ds](&[ol\d]+)?,f/g,str:"$1"},{exp:/(,[fhs1]|,[olx]b)(&[ol\d]+)?,[ds](&[ol\d]+)?,m/g,str:"$1,w"},{exp:/^,[ds],m(.+)?$/,str:",w$1#$1"},{exp:/^,[ds],f(.+)?$/,str:",h$1#$1"},{exp:/,[wh](,[ds])/g,str:"$1"},{exp:/,w,h|,h,w/g,str:""},{exp:/(.+)?\[([^\|]+?)\|([^\[\]]*\|[^\[\]]*)\](.+)?/g,str:"$1$2$4#$1[$3]$4"},{exp:/(.+)?\[([^\[\]\|]+?)\|([^\[\]\|]+?)?\](.+)?/g,str:"$1$2$4#$1$3$4"}],m=[{exp:/^從表/,arr:["從父姑表","從父舅表","從父姨表","從母姑表","從母舅表","從母叔表"]},{exp:/^表表/,arr:["姑表叔表","姑表姑表","姑表舅表","姑表姨表","舅表叔表","舅表姑表","舅表舅表","舅表姨表"]},{exp:/^([夫妻內外]?)表/,arr:["$1姑表","$1舅表"]},{exp:/^([姑舅])表(?=[^伯叔])/,arr:["$1表伯","$1表叔"]},{exp:/^姻/,arr:["姑姻","姨姻","姊妹姻","女姻"]},{exp:/^眷/,arr:["叔眷","舅眷","兄弟眷","男眷"]},{exp:/^親家/,arr:["姊妹姻","兄弟眷"]},{exp:/^([堂表姨]?)([曾高天烈太遠鼻]?)(祖?)([伯叔姑舅姨])/,arr:["$1$4$2$3"]},{exp:/^([曾高天烈太遠鼻]?)祖?王姑/,arr:["姑$1祖母"]},{exp:/^([曾玄來晜仍雲耳])([侄甥])/,arr:["$2$1"]},{exp:/^外表([伯叔姑舅姨])/,arr:["姑表$1外","舅表$1外"]},{exp:/([堂表姨]?)外甥/,arr:["$1甥"]},{exp:/^([舅叔])([曾玄外]*)孫/,arr:["$1侄$2孫"]},{exp:/^([姨姑])([曾玄外]*)孫/,arr:["$1甥$2孫"]},{exp:/([孫甥侄])$/,arr:["$1男","$1女"]},{exp:/([姑舅姨叔])([孫外]*)([男女])$/,arr:["$1表侄$2$3","$1表甥$2$3"]},{exp:/祖$/,arr:["祖父"]},{exp:/嫂$/,arr:["兄婦"]},{exp:/女兒$/,arr:["女"]}],b={晜:"兄",哥:"兄",姐:"姊",侄:"姪",婿:"壻",祖父:"王父",祖母:"王母",弟媳:"弟婦",嫂:"兄婦",孫女婿:"孫婿",甥女婿:"甥婿",侄女婿:"侄Line truncated
|
!function(s,f){"object"==typeof exports&&"object"==typeof module?module.exports=f():"function"==typeof define&&define.amd?define([],f):"object"==typeof exports?exports.relationship=f():s.relationship=f()}(this,(()=>(()=>{"use strict";var s={d:(f,x)=>{for(var d in x)s.o(x,d)&&!s.o(f,d)&&Object.defineProperty(f,d,{enumerable:!0,get:x[d]})},o:(s,f)=>Object.prototype.hasOwnProperty.call(s,f)},f={};s.d(f,{default:()=>D});const x=[{exp:/^(\S+?)(應該|得)?(稱呼|叫|喊)(\S+?)(什麼|啥)??$/,opt:s=>({text:s[4],target:s[1]})},{exp:/^(\S+?)(應該|得)?(如何|怎麼)(稱呼|叫|喊)(\S+?)??$/,opt:s=>({text:s[5],target:s[1]})},{exp:/^(\S+?)是(\S+?)的(誰|什麼|什麼親戚|啥親戚|什麼人)??$/,opt:s=>({text:s[1],target:s[2],type:s[1].indexOf("的")>-1?"default":"chain"})},{exp:/^(\S+?)(應該|得)?管(\S+?)叫(什麼|啥)??$/,opt:s=>({text:s[3],target:s[1]})},{exp:/^(\S+?)(和|與)(\S+?)(之間)?是(什麼|啥)關系??$/,opt:s=>({text:s[1],target:s[3],type:"pair"})},{exp:/^(\S+?)對於(\S+?)是(什麼|啥)關系??$/,opt:s=>({text:s[1],target:s[2],type:"chain"})},{exp:/^(\S+?)(指的)?是(什麼|啥)(意思|關系|親戚關系|輩分|人)??$/,opt:s=>({text:s[1],type:"chain"})},{exp:/^(\S+?)(應該|得)?(稱呼|叫|喊)(什麼|啥)??$/,opt:s=>({text:s[1]})},{exp:/^(\S+?)(應該|得)?(如何|怎麼)(稱呼|叫|喊)??$/,opt:s=>({text:s[1]})},{exp:/^(\S+?)是(誰|什麼|什麼親戚|啥親戚|什麼人|什麼輩分|啥輩分)??$/,opt:s=>({text:s[1],type:s[1].indexOf("的")>-1?"default":"chain"})}];const d=[{exp:/^(.+)&o([^#]+)&l/g,str:"$1$2"},{exp:/^(.+)&l([^#]+)&o/g,str:"$1$2"},{exp:/^(.+)?,o([sb](&\d+)?)([^#]+)&l/g,str:"$1,x$2$4"},{exp:/^(.+)?,l([sb](&\d+)?)([^#]+)&o/g,str:"$1,x$2$4"},{exp:/(,o[sb](&\d+)?)+(,o[sb])(&\d+)?/,str:"$3$4"},{exp:/(,l[sb](&\d+)?)+(,l[sb])(&\d+)?/,str:"$3$4"},{exp:/^(.*,[fh1])(,[olx][sb](&\d+)?)+,[olx]b(.*)$/,str:"$1,xb$4#$1$4"},{exp:/^(.*,[mw0])(,[olx][sb](&\d+)?)+,[olx]s(.*)$/,str:"$1,xs$4#$1$4"},{exp:/(,[fh1])(,[olx][sb](&\d+)?)+,[olx]s/g,str:"$1,xs"},{exp:/(,[mw0])(,[olx][sb](&\d+)?)+,[olx]b/g,str:"$1,xb"},{exp:/^,[olx][sb](&\d+)?,[olx]b(.+)?$/,str:",xb$2#$2"},{exp:/^,[olx][sb](&\d+)?,[olx]s(.+)?$/,str:",xs$2#$2"},{exp:/^,x([sb])$/,str:",o$1#,l$1"},{exp:/m,h/g,str:"f"},{exp:/f,w/g,str:"m"},{exp:/,[xol][sb](&\d+)?(,[mf])/g,str:"$2"},{exp:/,[mf],d(&\d+)/,str:",xs$1"},{exp:/,[mf],d&([ol])/,str:",$1s"},{exp:/,[mf],s(&\d+)/,str:",xb$1"},{exp:/,[mf],s&([ol])/,str:",$1b"},{exp:/^(.*,[fh1]|[xol]b(&\d+)?),[mf],s(.*)$/,str:"$1,xb$3#$1$3"},{exp:/^(.*,[mw0]|[xol]s(&\d+)?),[mf],d(.*)$/,str:"$1,xs$3#$1$3"},{exp:/(,[mw0]|[xol]s(&\d+)?),[mf],s/,str:"$1,xb"},{exp:/(,[fh1]|[xol]b(&\d+)?),[mf],d/,str:"$1,xs"},{exp:/^,[mf],s(.+)?$/,str:",xb$1#,1$1"},{exp:/^,[mf],d(.+)?$/,str:",xs$1#,0$1"},{exp:/,[ds](&[ol\d]+)?,[olx]b(&\d+)/g,str:",s$2"},{exp:/,[ds](&[ol\d]+)?,[olx]s(&\d+)/g,str:",d$2"},{exp:/,[ds]&o,ob/g,str:",s&o"},{exp:/,[ds]&o,os/g,str:",d&o"},{exp:/,[ds]&l,lb/g,str:",s&l"},{exp:/,[ds]&l,ls/g,str:",d&l"},{exp:/,[ds](&[ol\d]+)?,[olx]s(&\d+)?/g,str:",d$2"},{exp:/,[ds](&[ol\d]+)?,[olx]b(&\d+)?/g,str:",s$2"},{exp:/(,[mwd0]|,[olx]s)(&[ol\d]+)?,[ds](&[ol\d]+)?,m/g,str:"$1"},{exp:/(,[mwd0]|,[olx]s)(&[ol\d]+)?,[ds](&[ol\d]+)?,f/g,str:"$1,h"},{exp:/(,[fhs1]|,[olx]b)(&[ol\d]+)?,[ds](&[ol\d]+)?,f/g,str:"$1"},{exp:/(,[fhs1]|,[olx]b)(&[ol\d]+)?,[ds](&[ol\d]+)?,m/g,str:"$1,w"},{exp:/^,[ds],m(.+)?$/,str:",w$1#$1"},{exp:/^,[ds],f(.+)?$/,str:",h$1#$1"},{exp:/,[wh](,[ds])/g,str:"$1"},{exp:/,w,h|,h,w/g,str:""},{exp:/(.+)?\[([^\|]+?)\|([^\[\]]*\|[^\[\]]*)\](.+)?/g,str:"$1$2$4#$1[$3]$4"},{exp:/(.+)?\[([^\[\]\|]+?)\|([^\[\]\|]+?)?\](.+)?/g,str:"$1$2$4#$1$3$4"}],m=[{exp:/^從表/,arr:["從父姑表","從父舅表","從父姨表","從母姑表","從母舅表","從母叔表"]},{exp:/^表表/,arr:["姑表叔表","姑表姑表","姑表舅表","姑表姨表","舅表叔表","舅表姑表","舅表舅表","舅表姨表"]},{exp:/^([夫妻內外]?)表/,arr:["$1姑表","$1舅表"]},{exp:/^([姑舅])表(?=[^伯叔])/,arr:["$1表伯","$1表叔"]},{exp:/^姻/,arr:["姑姻","姨姻","姊妹姻","女姻"]},{exp:/^眷/,arr:["叔眷","舅眷","兄弟眷","男眷"]},{exp:/^親家/,arr:["姊妹姻","兄弟眷"]},{exp:/^([堂表姨]?)([曾高天烈太遠鼻]?)(祖?)([伯叔姑舅姨])/,arr:["$1$4$2$3"]},{exp:/^([曾高天烈太遠鼻]?)祖?王姑/,arr:["姑$1祖母"]},{exp:/^([曾玄來晜仍雲耳])([侄甥])/,arr:["$2$1"]},{exp:/^外表([伯叔姑舅姨])/,arr:["姑表$1外","舅表$1外"]},{exp:/([堂表姨]?)外甥/,arr:["$1甥"]},{exp:/^([舅叔])([曾玄外]*)孫/,arr:["$1侄$2孫"]},{exp:/^([姨姑])([曾玄外]*)孫/,arr:["$1甥$2孫"]},{exp:/([孫甥侄])$/,arr:["$1男","$1女"]},{exp:/([姑舅姨叔])([孫外]*)([男女])$/,arr:["$1表侄$2$3","$1表甥$2$3"]},{exp:/祖$/,arr:["祖父"]},{exp:/嫂$/,arr:["兄婦"]},{exp:/女兒$/,arr:["女"]}],b={晜:"兄",哥:"兄",姐:"姊",侄:"姪",婿:"壻",祖父:"王父",祖母:"王母",弟媳:"弟婦",嫂:"兄婦",孫女婿:"孫婿",甥女婿:"甥婿",侄女婿:"侄Line truncated
|
||||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "relationship.js",
|
"name": "relationship.js",
|
||||||
"version": "1.2.2",
|
"version": "1.2.3",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "relationship.js",
|
"name": "relationship.js",
|
||||||
"version": "1.2.2",
|
"version": "1.2.3",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"gulp": "^4.0.2",
|
"gulp": "^4.0.2",
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "relationship.js",
|
"name": "relationship.js",
|
||||||
"version": "1.2.2",
|
"version": "1.2.3",
|
||||||
"summary": "relationship.js is a javascript library for chinese family relationship. 中国家庭亲戚称谓计算器,家庭关系、亲戚关系算法。",
|
"summary": "relationship.js is a javascript library for chinese family relationship. 中国家庭亲戚称谓计算器,家庭关系、亲戚关系算法。",
|
||||||
"description": "Chinese kinship library",
|
"description": "Chinese kinship library",
|
||||||
"author": "HaoLe Zheng",
|
"author": "HaoLe Zheng",
|
||||||
|
|||||||
@@ -7,36 +7,14 @@ export default {
|
|||||||
'{G2},w':['祖母'],
|
'{G2},w':['祖母'],
|
||||||
'{G2},s':['父'],
|
'{G2},s':['父'],
|
||||||
'{G2},s,w':['母'],
|
'{G2},s,w':['母'],
|
||||||
|
'{G2},s,s':['兄弟'],
|
||||||
'{G2},s,s&o':['兄'],
|
'{G2},s,s&o':['兄'],
|
||||||
'{G2},s,s&l':['弟'],
|
'{G2},s,s&l':['弟'],
|
||||||
'{G2},s,s':['兄弟'],
|
'{G2},s,d':['姊妹'],
|
||||||
'{G2},s,d&o':['姊'],
|
'{G2},s,d&o':['姊'],
|
||||||
'{G2},s,d&l':['妹'],
|
'{G2},s,d&l':['妹'],
|
||||||
'{G2},s,d':['姊妹'],
|
|
||||||
'{G2},s,s,s':['男','子'],
|
'{G2},s,s,s':['男','子'],
|
||||||
'{G2},s,s,d':['女'],
|
'{G2},s,s,d':['女'],
|
||||||
'{G2C},s&o':['伯父'],
|
|
||||||
'{G2C},s&o,w':['伯母'],
|
|
||||||
'{G2C},s&l':['叔父'],
|
|
||||||
'{G2C},s&l,w':['叔母'],
|
|
||||||
'{G2C},s,s&o':['兄'],
|
|
||||||
'{G2C},s,s&l':['弟'],
|
|
||||||
'{G2C},s,s,s':['侄男'],
|
|
||||||
'{G2C},s,s,d':['侄女'],
|
|
||||||
'{G2C},s,d&o':['姐'],
|
|
||||||
'{G2C},s,d&l':['妹'],
|
|
||||||
'{G2C},s,d,s':['甥男'],
|
|
||||||
'{G2C},s,d,d':['甥女'],
|
|
||||||
'{G2C},d':['姑母'],
|
|
||||||
'{G2C},d,h':['姑父'],
|
|
||||||
'{G2C},d,s&o':['兄'],
|
|
||||||
'{G2C},d,s&l':['弟'],
|
|
||||||
'{G2C},d,s,s':['侄男'],
|
|
||||||
'{G2C},d,s,d':['侄女'],
|
|
||||||
'{G2C},d,d&o':['姐'],
|
|
||||||
'{G2C},d,d&l':['妹'],
|
|
||||||
'{G2C},d,d,s':['甥男'],
|
|
||||||
'{G2C},d,d,d':['甥女'],
|
|
||||||
// 高祖以上
|
// 高祖以上
|
||||||
'f,f,f,f,f,f,f,f,{G1M}':['鼻祖父'],
|
'f,f,f,f,f,f,f,f,{G1M}':['鼻祖父'],
|
||||||
'f,f,f,f,f,f,f,f,{G1M},w':['鼻祖母'],
|
'f,f,f,f,f,f,f,f,{G1M},w':['鼻祖母'],
|
||||||
@@ -125,8 +103,8 @@ export default {
|
|||||||
'f,f,{G1},d,h':['姑祖父','姑爷爷'],
|
'f,f,{G1},d,h':['姑祖父','姑爷爷'],
|
||||||
'f,m,{G1},s':['舅祖父','舅爷爷'],
|
'f,m,{G1},s':['舅祖父','舅爷爷'],
|
||||||
'f,m,{G1},s,w':['舅祖母','舅奶奶'],
|
'f,m,{G1},s,w':['舅祖母','舅奶奶'],
|
||||||
'f,m,{G1},d':['姨祖母','姨爷爷'],
|
'f,m,{G1},d':['姨祖母','姨奶奶'],
|
||||||
'f,m,{G1},d,h':['姨祖父','姨奶奶'],
|
'f,m,{G1},d,h':['姨祖父','姨爷爷'],
|
||||||
'm,f,{G1},s&o':['伯外祖父','伯外公','伯姥爷'],
|
'm,f,{G1},s&o':['伯外祖父','伯外公','伯姥爷'],
|
||||||
'm,f,{G1},s&o,w':['伯外祖母','伯外婆','伯姥姥'],
|
'm,f,{G1},s&o,w':['伯外祖母','伯外婆','伯姥姥'],
|
||||||
'm,f,{G1},s&l':['叔外祖父','叔外公','叔姥爷'],
|
'm,f,{G1},s&l':['叔外祖父','叔外公','叔姥爷'],
|
||||||
|
|||||||
@@ -2,10 +2,6 @@
|
|||||||
* 分支前缀 - 旁支亲戚的分支节点
|
* 分支前缀 - 旁支亲戚的分支节点
|
||||||
*/
|
*/
|
||||||
export default {
|
export default {
|
||||||
'{G2C}':{
|
|
||||||
'[f|m],[f|m],[f|m],[f,xs|m,xb|m,xs],[s|d],[s|d]':['重表'], // 曾祖辈的表兄弟姐妹的子女
|
|
||||||
'[f|m],[f|m],[f,xs|m,xb|m,xs],[s|d]':['重表'], // 祖辈的表兄弟姐妹的子女
|
|
||||||
},
|
|
||||||
'{G2}':{
|
'{G2}':{
|
||||||
'f,f,xb':['从祖'],
|
'f,f,xb':['从祖'],
|
||||||
'm,f,xb':['外从祖'],
|
'm,f,xb':['外从祖'],
|
||||||
@@ -35,6 +31,8 @@ export default {
|
|||||||
'm,m,m,xs,d,d':['三从母','三从'],
|
'm,m,m,xs,d,d':['三从母','三从'],
|
||||||
'f,f,f,f,xb,s,s,s':['四从父','三从堂','远堂','族','四从'],
|
'f,f,f,f,xb,s,s,s':['四从父','三从堂','远堂','族','四从'],
|
||||||
'm,m,m,m,xs,d,d,d':['四从母','四从'],
|
'm,m,m,m,xs,d,d,d':['四从母','四从'],
|
||||||
|
'[f|m],[f|m],[f|m],[f,xs|m,xb],[s|d],[s|d],[s|d]':['重表'],
|
||||||
|
'[f|m],[f|m],[f,xs|m,xb],[s|d],[s|d]':['重表'],
|
||||||
},
|
},
|
||||||
'{G1M}':{
|
'{G1M}':{
|
||||||
'f,ob':['伯'],
|
'f,ob':['伯'],
|
||||||
@@ -57,6 +55,12 @@ export default {
|
|||||||
'm,f,xs,s':['姑表舅'],
|
'm,f,xs,s':['姑表舅'],
|
||||||
'm,m,xb,s':['舅表舅'],
|
'm,m,xb,s':['舅表舅'],
|
||||||
'm,m,xs,s':['姨舅','从母舅'],
|
'm,m,xs,s':['姨舅','从母舅'],
|
||||||
|
'f,[f|m],[f|m],[f,xs|m,xb],[s|d],[s|d],s&o':['重表伯'],
|
||||||
|
'f,[f|m],[f|m],[f,xs|m,xb],[s|d],[s|d],s&l':['重表叔'],
|
||||||
|
'f,[f|m],[f,xs|m,xb],[s|d],s&o':['重表伯'],
|
||||||
|
'f,[f|m],[f,xs|m,xb],[s|d],s&l':['重表叔'],
|
||||||
|
'm,[f|m],[f|m],[f,xs|m,xb],[s|d],[s|d],s':['重表舅'],
|
||||||
|
'm,[f|m],[f,xs|m,xb],[s|d],s':['重表舅'],
|
||||||
},
|
},
|
||||||
'{G1W}':{
|
'{G1W}':{
|
||||||
'f,xs':['姑'],
|
'f,xs':['姑'],
|
||||||
@@ -70,6 +74,8 @@ export default {
|
|||||||
'm,f,xs,d':['姑表姨'],
|
'm,f,xs,d':['姑表姨'],
|
||||||
'm,m,xb,d':['舅表姨'],
|
'm,m,xb,d':['舅表姨'],
|
||||||
'm,m,xs,d':['姨姨','从母姨'],
|
'm,m,xs,d':['姨姨','从母姨'],
|
||||||
|
'f,[f|m],[f|m],[f,xs|m,xb],[s|d],[s|d],d':['重表姑'],
|
||||||
|
'm,[f|m],[f|m],[f,xs|m,xb],[s|d],[s|d],d':['重表姨'],
|
||||||
},
|
},
|
||||||
'{G0}':{
|
'{G0}':{
|
||||||
'xb':['侄'],
|
'xb':['侄'],
|
||||||
|
|||||||
+12
-17
@@ -91,20 +91,15 @@ export function getItemsById(id){
|
|||||||
res.push(_data[key][0]);
|
res.push(_data[key][0]);
|
||||||
}else{
|
}else{
|
||||||
var ids = [];
|
var ids = [];
|
||||||
for(var i in _data){
|
if(_data[key+'&o']){
|
||||||
if(i.replace(/&[ol]/g,'')==key){
|
ids.push(key+'&o');
|
||||||
// res.push(_data[i][0]);
|
|
||||||
ids.push(i);
|
|
||||||
}else{
|
|
||||||
while (key.match(/[ol](b|s)/)){
|
|
||||||
key = key.replace(/[ol](b|s)/,'x$1');
|
|
||||||
if(key==i){
|
|
||||||
// res.push(_data[i][0]);
|
|
||||||
ids.push(i);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
if(_data[key+'&l']){
|
||||||
|
ids.push(key+'&l');
|
||||||
}
|
}
|
||||||
|
var k = key.replace(/[ol](b|s)/,'x$1');
|
||||||
|
if(_data[k]){
|
||||||
|
ids.push(k);
|
||||||
}
|
}
|
||||||
res = filterId(ids).map(function(id){
|
res = filterId(ids).map(function(id){
|
||||||
return _data[id][0];
|
return _data[id][0];
|
||||||
@@ -162,17 +157,17 @@ export function getItemsById(id){
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 通过ID获取关系链
|
// 通过ID获取关系链
|
||||||
export function getChainById(id,sex){
|
|
||||||
var arr = id.split(',');
|
|
||||||
var item = arr.map(function(sign){
|
|
||||||
var key = sign.replace(/&[ol\d]+/,'');
|
|
||||||
var data = Object.assign({},_data,{
|
var data = Object.assign({},_data,{
|
||||||
'xb':['兄弟'],
|
'xb':['兄弟'],
|
||||||
'xs':['姐妹']
|
'xs':['姐妹']
|
||||||
});
|
});
|
||||||
|
export function getChainById(id,sex){
|
||||||
|
var arr = id.split(',');
|
||||||
|
var item = arr.map(function(sign){
|
||||||
|
var key = sign.replace(/&[ol\d]+/,'');
|
||||||
return data[key][0];
|
return data[key][0];
|
||||||
}).join('的');
|
}).join('的');
|
||||||
if(sex&&sex>-1&&_data[sex+','+id]){
|
if(sex&&sex>-1&&data[sex+','+id]){
|
||||||
if(sex==0){
|
if(sex==0){
|
||||||
item = '(女性)'+item;
|
item = '(女性)'+item;
|
||||||
}else if(sex==1){
|
}else if(sex==1){
|
||||||
|
|||||||
+31
-16
@@ -11,22 +11,11 @@ import {
|
|||||||
} from './selector';
|
} from './selector';
|
||||||
|
|
||||||
var _map = Object.assign({},_multipie);
|
var _map = Object.assign({},_multipie);
|
||||||
|
var getMap = function(prefixMap,branch){
|
||||||
// 分支前缀处理
|
var map = {};
|
||||||
var prefixMap = {};
|
for(var key in branch){
|
||||||
for(var key in _prefix){
|
|
||||||
prefixMap[key] = {};
|
|
||||||
for(var selector in _prefix[key]){
|
|
||||||
expandSelector(selector).forEach(function(s){
|
|
||||||
prefixMap[key][s] = _prefix[key][selector];
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 分支关系
|
|
||||||
for(var key in _branch){
|
|
||||||
var tag = key.match(/\{.+?\}/)[0];
|
var tag = key.match(/\{.+?\}/)[0];
|
||||||
var nameList = _branch[key];
|
var nameList = branch[key];
|
||||||
for(var k in prefixMap[tag]){
|
for(var k in prefixMap[tag]){
|
||||||
var prefixList = prefixMap[tag][k];
|
var prefixList = prefixMap[tag][k];
|
||||||
var newKey = key.replace(tag,k);
|
var newKey = key.replace(tag,k);
|
||||||
@@ -42,16 +31,42 @@ for(var key in _branch){
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
_map[newKey] = [].concat(_map[newKey]||[],newList);
|
map[newKey] = [].concat(_map[newKey]||[],newList);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return map;
|
||||||
|
};
|
||||||
|
// 分支前缀处理
|
||||||
|
var prefixMap1 = {};
|
||||||
|
for(var key in _prefix){
|
||||||
|
prefixMap1[key] = {};
|
||||||
|
for(var selector in _prefix[key]){
|
||||||
|
if(selector.indexOf(']')==-1){
|
||||||
|
prefixMap1[key][selector] = _prefix[key][selector];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var prefixMap2 = {};
|
||||||
|
for(var key in _prefix){
|
||||||
|
prefixMap2[key] = {};
|
||||||
|
for(var selector in _prefix[key]){
|
||||||
|
if(selector.indexOf(']')>-1){
|
||||||
|
expandSelector(selector).forEach(function(s){
|
||||||
|
prefixMap2[key][s] = _prefix[key][selector];
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_map = Object.assign({},_map,getMap(prefixMap1,_branch),getMap(prefixMap2,_branch));
|
||||||
// 主要关系
|
// 主要关系
|
||||||
for(var key in _main){
|
for(var key in _main){
|
||||||
_map[key] = [].concat(_main[key],_map[key]||[]);
|
_map[key] = [].concat(_main[key],_map[key]||[]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 版权彩蛋
|
// 版权彩蛋
|
||||||
_map['o']=['passer-by.com','\u4f5c\u8005'];
|
_map['o']=['passer-by.com','\u4f5c\u8005'];
|
||||||
|
|
||||||
// 配偶关系
|
// 配偶关系
|
||||||
var branch = {
|
var branch = {
|
||||||
'w':['妻','内','岳','岳家','丈人'],
|
'w':['妻','内','岳','岳家','丈人'],
|
||||||
|
|||||||
@@ -0,0 +1,42 @@
|
|||||||
|
// 数据快速搜索
|
||||||
|
export function quickSearch(map){
|
||||||
|
var _ = this;
|
||||||
|
var _cacheKey = {};
|
||||||
|
var _cacheValue = {};
|
||||||
|
var groupLength = ~~Math.sqrt(Object.entries(map).length);
|
||||||
|
// 索引分组
|
||||||
|
var getGroupIndex = function(key){
|
||||||
|
var arr = key.replace(/,/g,'').split('').map(value=>value.codePointAt(0));
|
||||||
|
if(arr.length>1){
|
||||||
|
return arr.reduce((a,b)=>(a+b))%groupLength;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
};
|
||||||
|
// 建立缓存表
|
||||||
|
for(var key in map){
|
||||||
|
var keyIndex = getGroupIndex(key);
|
||||||
|
if(typeof _cacheKey[keyIndex]=='undefined'){
|
||||||
|
_cacheKey[keyIndex] = {};
|
||||||
|
}
|
||||||
|
_cacheKey[keyIndex][key] = map[key];
|
||||||
|
map[key].forEach(function(name){
|
||||||
|
var valueIndex = getGroupIndex(name);
|
||||||
|
if(typeof _cacheValue[valueIndex]=='undefined'){
|
||||||
|
_cacheValue[valueIndex] = {};
|
||||||
|
}
|
||||||
|
if(typeof _cacheValue[valueIndex][name]=='undefined'){
|
||||||
|
_cacheValue[valueIndex][name] = [];
|
||||||
|
}
|
||||||
|
_cacheValue[valueIndex][name].push(key);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// 查询方法
|
||||||
|
_.getNameByKey = function(key){
|
||||||
|
var keyIndex = getGroupIndex(key);
|
||||||
|
return _cacheKey[keyIndex][key]||[];
|
||||||
|
};
|
||||||
|
_.getKeyByName = function(name){
|
||||||
|
var valueIndex = getGroupIndex(name);
|
||||||
|
return _cacheValue[valueIndex][name]||[];
|
||||||
|
};
|
||||||
|
};
|
||||||
+18
-10
@@ -8,6 +8,7 @@ import _similar from './rule/similar';
|
|||||||
import {zh2number} from './unit';
|
import {zh2number} from './unit';
|
||||||
import {reverseId,filterId,getGenById} from './id';
|
import {reverseId,filterId,getGenById} from './id';
|
||||||
import {modeData as _data} from './mode';
|
import {modeData as _data} from './mode';
|
||||||
|
import {quickSearch} from './search';
|
||||||
|
|
||||||
// 获得最简
|
// 获得最简
|
||||||
var getOptimal = function(options){
|
var getOptimal = function(options){
|
||||||
@@ -70,6 +71,8 @@ var getOptimal = function(options){
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var search = new quickSearch(_data);
|
||||||
|
|
||||||
// 中文获取选择器
|
// 中文获取选择器
|
||||||
export function getSelectors(str){
|
export function getSelectors(str){
|
||||||
str = str.replace(/之/g,'的').replace(/吾之?(.+)/,'$1').replace(/我的?(.+)/,'$1');
|
str = str.replace(/之/g,'的').replace(/吾之?(.+)/,'$1').replace(/我的?(.+)/,'$1');
|
||||||
@@ -123,24 +126,29 @@ export function getSelectors(str){
|
|||||||
var x_name = name.replace(match[0],'几');
|
var x_name = name.replace(match[0],'几');
|
||||||
var r_name = name.replace(match[0],'');
|
var r_name = name.replace(match[0],'');
|
||||||
var num = zh2number(match[0]);
|
var num = zh2number(match[0]);
|
||||||
for(var i in _data){
|
var x_ids = search.getKeyByName(x_name);
|
||||||
|
var r_ids = search.getKeyByName(r_name);
|
||||||
|
var i_ids = search.getKeyByName(name);
|
||||||
|
if(x_ids.length){
|
||||||
|
x_ids.forEach(function(i){
|
||||||
var r_i = i.replace(/(,[hw])$/,'&'+num+'$1').replace(/([^hw]+)$/,'$1&'+num);
|
var r_i = i.replace(/(,[hw])$/,'&'+num+'$1').replace(/([^hw]+)$/,'$1&'+num);
|
||||||
if(_data[i].includes(x_name)){
|
|
||||||
x_items.push(r_i);
|
x_items.push(r_i);
|
||||||
}else if(_data[i].includes(r_name)){
|
});
|
||||||
|
}else if(r_ids.length){
|
||||||
|
r_ids.forEach(function(i){
|
||||||
|
var r_i = i.replace(/(,[hw])$/,'&'+num+'$1').replace(/([^hw]+)$/,'$1&'+num);
|
||||||
if(!i.match(/^[mf,]+$/)&&!r_name.match(/^[从世]/)){ // 直系祖辈不参与排序
|
if(!i.match(/^[mf,]+$/)&&!r_name.match(/^[从世]/)){ // 直系祖辈不参与排序
|
||||||
r_items.push(r_i);
|
r_items.push(r_i);
|
||||||
}
|
}
|
||||||
}else if(_data[i].includes(name)){
|
});
|
||||||
|
}else{
|
||||||
|
i_ids.forEach(function(i){
|
||||||
|
var r_i = i.replace(/(,[hw])$/,'&'+num+'$1').replace(/([^hw]+)$/,'$1&'+num);
|
||||||
i_items.push(r_i);
|
i_items.push(r_i);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
items = items.concat(search.getKeyByName(name));
|
||||||
for(var i in _data){
|
|
||||||
if(_data[i].includes(name)){
|
|
||||||
items.push(i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
// console.log('[keywords]',keywords);
|
// console.log('[keywords]',keywords);
|
||||||
// 如找不到结果,再是否存在称呼的排行问题(不直接判断,因存在"大舅""三从父兄""三世祖"这样特俗含义的情况)
|
// 如找不到结果,再是否存在称呼的排行问题(不直接判断,因存在"大舅""三从父兄""三世祖"这样特俗含义的情况)
|
||||||
|
|||||||
Reference in new issue
Block a user