Browse Source

Исправлена обработка коротких слов (предлогов, союзов и т.д.)

master
Maxim Likhachev 7 years ago
parent
commit
ebcff642f9
  1. 8
      js/feminitives.js

8
js/feminitives.js

@ -223,6 +223,9 @@ FEM.endings = { @@ -223,6 +223,9 @@ FEM.endings = {
'ны' : [
['на', 2] //бассейна -> бассей_ны
],
'аяся' : [
['ся', 4], //занимающийся -> занимающ_аяся
],
};
//Слова со специфичными определениями
@ -264,7 +267,7 @@ FEM.words = { @@ -264,7 +267,7 @@ FEM.words = {
FEM.words.convert = function(string) {
for (var fem_w in this) {
string = string.replace(new RegExp(fem_w, "ig"), this[fem_w])
string = string.replace(new RegExp('(^|\\s)+' + fem_w, "ig"), '$1' + this[fem_w])
.replace(/(.)/, s => s.toUpperCase());
}
return string;
@ -323,7 +326,7 @@ function download_image() { @@ -323,7 +326,7 @@ function download_image() {
//Создание феминитива
function make_feminitives(word) {
//Обрабатываем только слова длиннее трёх символов
if (word.length < 3) return word;
if (word.length < 4) return [word, word];
var stem = ""; //Основа слова
var current_ending = word.slice(-2); //Текущее окончание
@ -360,6 +363,7 @@ function parseWikiPage(page) { @@ -360,6 +363,7 @@ function parseWikiPage(page) {
.replace(/\[{2}[^\|]*\|([^\]]*)\]{2}/g, "$1") //[[1|2]]
.replace(/\[{2}([^\]\|]*)\}{2}/g, "$1") //{{1}}
.replace(/\{{2}[^\{\}]*\}{2} ?/g, "") //{{1|2}}
.replace(/\{{2}[^\{\}]*\|.*/g, "") //{{1|слово<!--комментарий-->.*$
.replace(/\{{2}[^\{\}]*\}{2} ?/g, "") //~ : возможна вложенность
.replace(/\[[0-9]{1,}\]/g, "") //ссылки [n]
.replace(/^ *, */g, "") //^, ...

Loading…
Cancel
Save