Subversion Repositories Applications.dictionnaire

Compare Revisions

Ignore whitespace Rev 16 → Rev 17

/scripts/dictionnaire.js
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