| 178,14 → 178,27 |
| } |
| } |
| |
| // update definitions set cle = trim(cle); |
| // select cle from definitions where cle like '%é' COLLATE 'utf8_bin'; |
| // select cle from definitions where cle like '% ou %' COLLATE 'utf8_bin'; |
| function batirRegexp(mots) { |
| var restr = ''; |
| $.each(mots, function(index, mot) { |
| if(restr != '') restr += '|'; |
| |
| if(mot.length < 3) { |
| if(mot == 'ph') { |
| restr += 'ph[^.]'; |
| } |
| else if(mot.length < 3) { |
| restr += mot; |
| } |
| // confluent => confluentes |
| else if(mot.substr(-2) == 'ts') { |
| restr += mot.slice(0, -1) + "e?s?"; |
| } |
| else if(mot.substr(-3) == 'ore') { |
| restr += mot + "s?"; |
| } |
| // gestion masculin/féminin en "eux/euse" |
| else if(mot.substr(-1) == 'x') { |
| restr += mot.slice(0, -1) + "(?:x|se|ses)"; |
| 193,8 → 206,27 |
| else if(mot.substr(-4) == 'euse') { // TODO: fix DB |
| restr += mot.slice(0, -2) + "(?:x|se|ses)"; |
| } |
| else |
| else if(mot.substr(-2) == 'ée') { |
| restr += mot.slice(0, -1) + "e?s?"; |
| } |
| else if(mot.substr(-1) == 'é') { |
| restr += mot + "e?s?"; |
| } |
| // verbe vs nom |
| else if(mot.substr(-4) == 'orme') { |
| restr += mot + "s?"; |
| } |
| // verbe 3è p.pluriel en DB: ne devraient pas exister |
| // mais rampant => rampante |
| else if(mot.substr(-2) == 'nt') { |
| restr += mot + "e?s?"; |
| } |
| else { |
| // moins de faux positifs: |
| // restr += mot + "(?:[ées]){0,2}"; |
| // autrement: |
| restr += mot + "\\w{0,2}"; |
| } |
| }); |
| |
| regexp_complete = new RegExp("(?:\\s|^|\\W)(" + restr + ")\\b", "ig"); // accents |