MediaWiki:Gadget-Deyatificator.js
Замечание: Возможно, после публикации вам придётся очистить кэш своего браузера, чтобы увидеть изменения.
- Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl+F5 или Ctrl+R (⌘+R на Mac)
- Google Chrome: Нажмите Ctrl+Shift+R (⌘+Shift+R на Mac)
- Internet Explorer / Edge: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl+F5
- Opera: Нажмите Ctrl+F5.
//Конвертер из дореформенной в современную орфографию.
//Часть кода позаимствована из //ru.wikipedia.org/wiki/MediaWiki:Wikificator.js
//Часть кода позаимствована из //ru.wiktionary.org/wiki/Участник:X-romix/wikifikator.js
//Основная часть деятификатора создана участником Викитеки Grenadine (см. Участник:Grenadine/yat.js),
//с советами и дополнениями разных участников Викитеки
//особенно EugeneZelenko, Sergey kudryavtsev
//Переработано и дополнено Виталием Чихариным (chva) — см. Участник:ChVA/Деятификатор.js
//Адаптация к новому расширенному меню сделана участником Lozman
//********************************************** ver. 1.01 от 05.02.2011 ************************************
var wmCantWork = 'Deyatеficator cannot work in your browser';
var wmFullText = 'Deyatеficator will process ALL text on this page. Continue?';
var wmTalkPage = 'Деятефикатор не обрабатывает обсуждения\n\nDeyatеficator doesn\'t work on discussion pages';
// Добавляет кнопку
// 20.02.2011 -- Sergey kudryavtsev
// 22.02.2017 -- Lozman с подачи Jack who built the house
function addOldToolbarButton() {
var $toolbar = $( '#gadget-toolbar' );
if ( !$toolbar.length ) {
$toolbar = $( '#toolbar' );
}
$( '<div>' ) //
.addClass( 'mw-toolbar-editbutton' ) //
.attr( 'alt', 'Деятификатор' ) //
.attr( 'title', 'Преобразовать текст из дореформенной в современную орфографию' ) //
.css( 'background-image', 'url(//upload.wikimedia.org/wikipedia/commons/f/fd/OldToNewRussianOrthographyConversionIcon.png)' ) //
.appendTo( $toolbar )
.on( 'click', Yat );
}
function addNewToolbarButton() {
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
'section': 'main',
'group': 'gadgets',
'tools': {
'deyatificator': {
label: 'Преобразовать текст из дореформенной в современную орфографию',
type: 'button',
icon: '//upload.wikimedia.org/wikipedia/commons/b/be/Button_old_to_new_spelling_Russian.png',
action: {
type: 'callback',
// execute: function() {
// Yat();
// }
execute: Yat
}
}
}
} );
mw.hook( 'wikieditor.toolbar.deyatificator' ).fire();
}
if ( $.inArray( mw.config.get( 'wgAction' ), [ 'edit', 'submit' ] ) !== -1 ) {
mw.loader.using( [ 'user.options', 'jquery.textSelection' ], function() {
if ( mw.user.options.get( 'usebetatoolbar' ) === 1 ) {
// if ( mw.user.options.get( 'showtoolbar' ) === 1 ) {
$.when(
mw.loader.using( 'ext.wikiEditor' ),
$.ready
).then( function() {
mw.hook( 'wikieditor.toolbar.gadgetsgroup' ).add( addNewToolbarButton );
} );
// }
} else {
mw.loader.using( 'mediawiki.toolbar', function() {
$( addOldToolbarButton );
} );
}
} );
}
function Yat(){
if (('code'.replace(/d/g, 'r') != 'core') //check regexp support
|| (navigator.appName=='Netscape' && navigator.appVersion.substr (0, 1) < 5))
{ alert(wmCantWork); return }
var txt, hidden = [], hidIdx = 0, wpTextbox1 = document.editform.wpTextbox1;
var winScroll = document.documentElement.scrollTop; //remember window scroll
wpTextbox1.focus();
if (typeof wpTextbox1.selectionStart != 'undefined') { // Modern browsers
var textScroll = wpTextbox1.scrollTop;
var startPos = wpTextbox1.selectionStart;
var endPos = wpTextbox1.selectionEnd;
txt = wpTextbox1.value.substring(startPos, endPos);
if (txt == '') processAllText();
else{
processText();
wpTextbox1.value = wpTextbox1.value.substring(0, startPos) + txt + wpTextbox1.value.substring(endPos);
}
wpTextbox1.selectionStart = startPos;
wpTextbox1.selectionEnd = startPos + txt.length;
wpTextbox1.scrollTop = textScroll;
}else if (document.selection && document.selection.createRange) { //IE
var range = document.selection.createRange();
txt = range.text;
if (txt == '') processAllText();
else{
processText();
range.text = txt;
//if (!window.opera) txt = txt.replace(/\r/g,'')
if (range.moveStart) range.moveStart('character', - txt.length);
range.select();
}
}else // other browsers
if (confirm(wmFullText)) processAllText();
document.documentElement.scrollTop = winScroll; // scroll back, for IE/Opera
//functions
function processAllText(){
txt = '\n' + wpTextbox1.value;
processText();
txt = txt.replace(/^[\n\r]+/, '');
wpTextbox1.value = txt;
txt = '';
if (window.auto_comment && window.insertSummary) insertSummary('деятефикатор');
}
function processText(){
var u = '\u00A0'; //unbreakable space
if (mw.config.get('wgNamespaceNumber') % 2 || mw.config.get('wgNamespaceNumber')==4) { //is talk page
u = ' ';
var sigs = txt.match(/\d\d:\d\d, \d\d? \S{3,8} 20\d\d \(UTC\)/g);
if (sigs && sigs.length > 1) {
alert(wmTalkPage); return;
}
}
hide('\\{\\{lang[-|][a-z]{2,}\\|.*?\\}\\}'); //Прячем текст, заключённый в шаблон с кодом языка
//+++ Начало блока регулярных выражений для замены текста. Пожалуйста, не удаляйте этот комментарий.
// По совету участника EugeneZelenko — первоначально Ея/ея меняется на Её/её
txt = txt.replace(/([^а-яА-ЯёЁѲѳѢѣІіѴѵ]|^)(Е|е)я([^а-яА-ЯёЁѲѳѢѣІіѴѵ]|$)/g,'$1$2ё$3');// Ея → Её
txt = txt.replace(/([^а-яА-ЯёЁѲѳѢѣІіѴѵ]|^)(Ч|ч)емъ([^а-яА-ЯёЁѲѳѢѣІіѴѵ]|$)/g,'$1$2ёмъ$3');// Чемъ → Чёмъ
txt = txt.replace(/([^а-яА-ЯёЁѲѳѢѣІіѴѵ]|^)(Н|н)емъ([^а-яА-ЯёЁѲѳѢѣІіѴѵ]|$)/g,'$1$2ёмъ$3');// Немъ → Нёмъ
// В некоторых словах с десятичным и (і) эта буква меняется не на «и», а на «й»
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(А|а)ллилуі([а-я]{1,2})/g,'$1$2ллилуй$3');// аллилуія → аллилуйя
txt = txt.replace(/([^а-яА-ЯёЁ]|^)іод([а-я]{1,2})/g,'$1йод$2');// іод → йод
txt = txt.replace(/([^а-яА-ЯёЁ]|^)Іод([а-я]{1,2})/g,'$1Йод$2');// Іод → йод
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(М|м)аіор/g,'$1$2айор');// маіор → майор
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(К|к)омпаніон/g,'$1$2омпаньон');// компаніон → компаньон
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Р|р)аіон/g,'$1$2айон');// раіон → район
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(П|п)іес/g,'$1$2ьес');// піеса → пьеса
txt = txt.replace(/([^а-яА-ЯёЁ]|^)Аргеіск/g,'$1ргейск');// Аргеіскихъ → Аргейских и варианты
txt = txt.replace(/([^а-яА-ЯёЁ]|^)іот([а-я]{1,2})/g,'$1йот$2');// іота → йота
txt = txt.replace(/([^а-яА-ЯёЁ]|^)Іот([а-я]{1,2})/g,'$1Йот$2');// Іота → Йота
txt = txt.replace(/([^а-яА-ЯёЁ]|^)Іорк([а-я]{1,2})/g,'$1Йорк$2');// Іорк → Йорк какие ещё слова?
// Обшибочные латинские «i» и «I» на месте кириллических «і» и «І» меняется на «и» и «И»
txt = txt.replace(/([ а-яёА-ЯЁ])i([а-яё])/g,'$1и$2');
txt = txt.replace(/([ А-ЯЁ])I([А-ЯЁ])/g,'$1И$2');
// Обшибочные кириллические «і» и «І» на месте латинских «i» и «I» меняется на латинские «i» и «I»
txt = txt.replace(/([ a-zA-Z])і([a-z])/g,'$1i$2');
txt = txt.replace(/([ A-Z])І([a-zA-Z])/g,'$1I$2');
// Римские цифры: обшибочная кириллица на латиницу.
// Цифры с русской буквой "С" не обрабатываются, поскольку она массово используется как приставка; а рим. цифра "C" (100) используется редко.
// ! Отключено, поскольку в некоторых текстах о лингвистике могут рассматриваться отдельно стоящие рус. буквы "ІѴХ". Замена их на латиницу будет ошибкой. Возможно стоит сделать отдельный мини-гаджет.
// txt = txt.replace( /(\W)([IVXLCDMІѴХ]+)(\W)/g, function ( s, m1, m2, m3 ) {
// m2 = m2.replace( /І/g, 'I' ).replace( /Ѵ/g, 'V' ).replace( /Х/g, 'X' );
// return m1 + m2 + m3; });
// Основные правила — «ѣ» и «Ѣ» меняются на «е» и «Е», «і», «ї», «Ї» и «І» меняется на «и» и «И», «ѵ» и «Ѵ» меняются на «и» и «И», «ѳ» и «Ѳ» меняются на «ф» и «Ф», «ъ» и «Ъ» в конце слова удаляется. Одиночные і и І не меняются
txt = txt.replace(/Ѣ/g,'Е');
txt = txt.replace(/ѣ/g,'е');
txt = txt.replace(/([а-яА-ЯёЁ]|^)І/g,'$1И');
txt = txt.replace(/І([а-яА-ЯёЁ]|$)/g,'И$1');
txt = txt.replace(/([а-яА-ЯёЁ]|^)і/g,'$1и');
txt = txt.replace(/і([а-яА-ЯёЁ]|$)/g,'и$1');
txt = txt.replace(/Ї/g,'И');
txt = txt.replace(/ї/g,'и');
txt = txt.replace(/Ѳ/g,'Ф');
txt = txt.replace(/ѳ/g,'ф');
txt = txt.replace(/Ѵ/g,'И');
txt = txt.replace(/ѵ/g,'и');
txt = txt.replace(/([бвгджзклмнпрстфхцчшщБВГДЖЗКЛМНПРСТФХЦЧШЩ])(ъ|Ъ)([^а-яА-яa-zA-ZёЁ]|$)/g,'$1$3');
// Это нужно перед окончаниями, иначе «тиранния» заменится на «тиранние»
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Т|т)иранн/g,'$1$2иран');// тиранния → тирания
// Некоторые слова требуют защиты (такие как редкие слова зантедеския и переския или слово выя) чтобы деятификатор не менял их считая что это прилагательные
// К сожалению, JavaScript не поддерживает «Negative lookbehind» (негативное заглядывание назад), так что приходится вот так, не очень красиво, делать.
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(З|з)антедеския([^а-яА-ЯёЁ]|$)/g,'$1@@$2-0001@@$3');// зантедеския
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(П|п)ереския([^а-яА-ЯёЁ]|$)/g,'$1@@$2-0002@@$3');// переския
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Ц|ц)инния([^а-яА-ЯёЁ]|$)/g,'$1@@$2-0003@@$3');// цинния
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(В|в)ыя([^а-яА-ЯёЁ]|$)/g,'$1@@$2-0004@@$3');// выя
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Б|б)езбрежия([^а-яА-ЯёЁ]|$)/g,'$1@@$2-0005@@$3');// безбрежия
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(М|м)алоснежия([^а-яА-ЯёЁ]|$)/g,'$1@@$2-0006@@$3');// малоснежия
txt = txt.replace(/(О|о)ружия([^а-яА-ЯёЁ]|$)/g,'@@$1-0007@@$2');// оружия и всеоружия
txt = txt.replace(/мужия([^а-яА-ЯёЁ]|$)/g,'@@0008@@$1');// двоемужия, троемужия и многомужия
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(П|п)олукружия([^а-яА-ЯёЁ]|$)/g,'$1@@$2-0009@@$3');// полукружия
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Г|г)уберния([^а-яА-ЯёЁ]|$)/g,'$1@@$2-0010@@$3');// губерния
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Г|г)уерния([^а-яА-ЯёЁ]|$)/g,'$1@@$2-0011@@$3');// гуерния (растение)
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(С|с)атурния([^а-яА-ЯёЁ]|$)/g,'$1@@$2-0012@@$3');// сатурния (бабочка)
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(К|к)алифорния([^а-яА-ЯёЁ]|$)/g,'$1@@$2-0013@@$3');// калифорния (род. для хим. эл-та)
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(У|у)частию([^а-яА-ЯёЁ]|$)/g,'$1@@$2-0014@@$3');// участию
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(У|у)частью([^а-яА-ЯёЁ]|$)/g,'$1@@$2-0015@@$3');// участью
txt = txt.replace(/([^а-яА-ЯёЁ]|^)Чикаго([^а-яА-ЯёЁ]|$)/g,'$1@@0016@@$2');// Чикаго
txt = txt.replace(/([^а-яА-ЯёЁ]|^)Батыя([^а-яА-ЯёЁ]|$)/g,'$1@@0017@@$2');// Батыя
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(П|п)ресвятыя([^а-яА-ЯёЁ]|$)/g,'$1@@$2-0018@@$3');// Пресвятыя Богородицы
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(П|п)одножия([^а-яА-ЯёЁ]|$)/g,'$1@@$2-0019@@$3');// подножия
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Н|н)ародовластию([^а-яА-ЯёЁ]|$)/g,'$1@@$2-0020@@$3');// народовластию
txt = txt.replace(/([^а-яА-ЯёЁ]|^)Божия([^а-яА-ЯёЁ]|$)/g,'$1@@0021@@$2');// Божия
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Благ|благ|Велик|велик|Добр|добр|Прост|прост|Равн|равн)одушия([^а-яА-ЯёЁ]|$)/g,'$1@@$2-0022@@$3');// добродушия, простодушия, равнодушия и т.п.
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Дву|дву|Трех|Трёх|трех|трёх|Четверо|четверо|Четырёх|четырёх|Четырех|четырех|Пяти|пяти|Шести|шести|Семи|семи|Восьми|восьми)стишия([^а-яА-ЯёЁ]|$)/g,'$1@@$2-0023@@$3');// двустишия, трехстишия и т.п.
// Окончания (не в морфологическом смысле, а просто окончания слов)
// Окончания на -ния:
txt = txt.replace(/([а-яА-ЯёЁ])(ав|ай|д|ев|ж|ль|н|р|х|ш)ния([^а-яА-ЯёЁ]|$)/g,'$1$2ние$3');
// Окончания на -кия:
txt = txt.replace(/([а-яА-ЯёЁ])(б|бо|в|г|з|он|с|со|сто|ь|яж)кия([^а-яА-ЯёЁ]|$)/g,'$1$2кие$3');
// Другие окончания на -ия
txt = txt.replace(/([а-яА-ЯёЁ])(бог|вч|еж|лаг|ож|уж|ух|ш|щ)ия([^а-яА-ЯёЁ]|$)/g,'$1$2ие$3'); // -шия, -щия и т.п. на конце слова меняются на -шие, -щие и т.п.
// Окончанию на -лию, -нию, -тию и т.п.
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Бесче|бесче|Че|че|Слабо|слабо|Легко|легко|Лёгко|лёгко|Предме|предме)сти(е|и|ю|я)([а-яё]{1,2})/g,'$1$2сть$3$4'); // честию → честью, слабостию → слабостью, лёгкостию → лёгкостью и проч.
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Се|се|Жиз|жиз)нию/g,'$1$2нью'); // под сению → под сенью, жизнию → жизнью
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(М|м)ыслию/g,'$1$2ыслью'); // мыслию → мыслью
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Ц|ц)елию/g,'$1$2елью'); // целию → целью
// Окончания -чек
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Дья|дья|Зна|зна|Крю|крю|Мужи|мужи|Свер|свер|Стари|стари)ч(е|ё)к/g,'$1$2чок'); // старичек → старичок, мужичек → мужичок и т.п.
// Окончания -чем
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Вра|вра)ч(е|ё)м/g,'$1$2чом'); // врачем → врачом и т.п.
// Другие окончания
txt = txt.replace(/([а-яё])ыя([^а-яА-ЯёЁ]|$)/g,'$1ые$2'); // -ыя на конце слова (в прилагательных) на -ые
txt = txt.replace(/([А-ЯЁ])ЫЯ([^а-яА-ЯёЁ]|$)/g,'$1ЫЕ$2'); // -ЫЯ на конце слова (в прилагательных) на -ЫЕ
txt = txt.replace(/([а-яё])скаго([^а-яА-ЯёЁ]|$)/g,'$1ского$2');// -скаго → -ского
txt = txt.replace(/([А-ЯЁ])СКАГО([^а-яА-ЯёЁ]|$)/g,'$1СКОГО$2');// -СКАГО → -СКОГО
txt = txt.replace(/([а-яА-ЯёЁ])ияся([^а-яА-ЯёЁ]|$)/g,'$1иеся$2');// -ияся → -иеся
txt = txt.replace(/([а-яА-ЯёЁ])яго([^а-яА-ЯёЁ]|$)/g,'$1его$2');// -яго → -его
txt = txt.replace(/([жчцшщ])аго([^а-яА-ЯёЁ]|$)/g,'$1его$2');// -шаго → -шего и т.п.
txt = txt.replace(/([чшщ])аго(ся)([^а-яА-ЯёЁ]|$)/g,'$1его$2$3');// -щагося → -щегося и т.п.
txt = txt.replace(/([а-яА-ЯёЁ]{2,})([бвгдзклмнпрстх])аго([^а-яА-ЯёЁ]|$)/g,'$1$2ого$3');// -аго → -ого
txt = txt.replace(/([БВГДЗКЛМНПРСТХ])АГО([^а-яА-ЯёЁ]|$)/g,'$1ОГО$2');// -АГО → -ОГО
txt = txt.replace(/([а-яА-ЯёЁ])(н|д|т)остию([^а-яА-ЯёЁ]|$)/g,'$1$2остью$3');// -ностию → -ностью, -достию → -достью, -тостию → -тостью
txt = txt.replace(/([а-яА-ЯёЁ])астию([^а-яА-ЯёЁ]|$)/g,'$1астью$2');// -астию → -астью
//txt = txt.replace(/([а-яА-ЯёЁ])ртию([^а-яА-ЯёЁ]|$)/g,'$1ртью$2');// -ртию → -ртью тут ошибки типа «бессмертью», закомментировал
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(п|П|х|Х)артью([^а-яА-ЯёЁ]|$)/g,'$1$2артию$3');// партью → партию, хартью → хартию
txt = txt.replace(/(л|п|д|т)(и)*кия([^а-яА-ЯёЁ]|$)/g,'$1$2кие$3');// -лкия → -лкие, -ликия → -ликие, -пкия → -пкие, -дкия → дкие и т.п.
txt = txt.replace(/([а-яА-ЯёЁ])льныя([^а-яА-ЯёЁ]|$)/g,'$1льные$2');// -льныя → -льныя
txt = txt.replace(/([а-яА-ЯёЁ])(д|р)ячия([^а-яА-ЯёЁ]|$)/g,'$1$2ячие$3');// -дячия → -дячие, -рячия → -рячие
txt = txt.replace(/([а-яА-ЯёЁ])ньи([^а-яА-ЯёЁ]|$)/g,'$1нии$2');// -ньи → -нии (ухаживаньи → ухаживании)
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(О|о)лении([^а-яА-ЯёЁ]|$)/g,'$1$2леньи$3');// олении → -оленьи
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Б|б|Ге|ге|Г|г|Филиг|филиг)ранию([^а-яА-ЯёЁ]|$)/g,'$1$2ранью$3'); // -ния на конце слова на -нью (бранию → бранью)
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(дру|Дру|мно|Мно|Немно|немно)гия([^а-яА-ЯёЁ]|$)/g,'$1$2гие$3'); // другия → другие и т.п.
// Окончанию на -нии → ньи
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Акси|бара|Бара|бегу|Бегу|боду|Боду|боло|Боло|болту|Болту|бормоту|Бормоту|ботви|Ботви|брезгу|Брезгу|бреху|Бреху|брыку|Брыку|веду|Веду|верту|Верту|вещу|Вещу|визгу|Визгу|вику|Вику|воркоту|Воркоту|ворчу|Ворчу|вру|Вру|глазу|Глазу|говору|Говору|горбу|Горбу|до|До|драчу|Драчу|дуэ|Дуэ|екте|Екте|Ефроси|игру|Игру|игуме|Игуме|капризу|Капризу|колду|Колду|копоту|Копоту|копу|Копу|коре|Коре|крику|Крику|кропоту|Кропоту|кряхту|Кряхту|лгу|Лгу|лепету|Лепету|лету|Лету|лизу|Лизу|лопоту|Лопоту|Мала|Мела|молчу|Молчу|моргу|Моргу|павли|Павли|пачку|Пачку|певу|Певу|перху|Перху|песту|Песту|пету|Пету|пира|Пира|писку|Писку|плясу|Плясу|ползу|Ползу|полы|Полы|попрыгу|Попрыгу|порху|Порху|прыгу|Прыгу|реву|Реву|резву|Резву|сви|Сви|свисту|Свисту|Секлети|скаку|Скаку|сопу|Сопу|споры|Споры|стрекоту|Стрекоту|таску|Таску|Усти|Февро|Фети|форсу|Форсу|Фоти|фырку|Фырку|хавро|Хавро|хапу|Хапу|хвасту|Хвасту|хитру|Хитру|хлопоту|Хлопоту|хохоту|Хохоту|храпу|Храпу|хрипу|Хрипу|шалу|Шалу|шату|Шату|шепту|Шепту|шипу|Шипу|шу|Шу|щебету|Щебету)нии/g,'$1$2ньи'); // свинии → свиньи и т.п.
// Приставки
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Р|р)азстя/g,'$1$2астя');// Разстянуто → Растянуто
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Р|р)азсч(е|ё)т/g,'$1$2асчёт');// Разсчет → Расчёт
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Р|р)аз([пткфсхцчш])/g,'$1$2ас$3');// Раз- перед глухими согласными → Рас-
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Б|б)ез([пткфсхцчш])/g,'$1$2ес$3');// Без- перед глухими согласными → Бес-
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Б|б)езразс/g,'$1$2езрасс');// Безразсудный → Безрассудный
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Н|н)ебез([пткфсхцчш])/g,'$1$2ебес$3');// Небез- перед глухими согласными → Небес- (небесследно, небесполезно)
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Н|н)ераз([пткфсхцчш])/g,'$1$2ерас$3');// Нераз- перед глухими согласными → Нерас- (нерасслышанное)
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Н|н)изх/g,'$1$2исх');// Низ- перед «х» → Нис- (низходить → нисходить)
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Н|н)изш(е|ё)(д|л)/g,'$1$2исш$3$4');// Низ- перед ««ш» → Нис- (низшёл → нисшёл )
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(П|п)ораз([пткфсхцчш])/g,'$1$2орас$3');// Пораз- перед глухими согласными → Порас- (порассказал)
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(О|о)без([пткфсхцчш])/g,'$1$2бес$3');// Обез- перед глухими согласными → Обес-
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(П|п)обез([пткфсхцчш])/g,'$1$2обес$3');// Побез- перед глухими согласными → Побес-
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(З|з)абез([пткфсхцчш])/g,'$1$2абес$3');// Забез- перед глухими согласными → Забес-
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(В|в)оз([пткфсхцш])/g,'$1$2ос$3');// Воз- перед глухими согласными → Вос-
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(В|в)озч([^и])/g,'$1$2осч$3');// Возч- в начале слова → Восч- (кроме возчика)
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(И|и)з([пткфсхцчш])/g,'$1$2с$3');// Из- перед глухими согласными → Ис-
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(П|п)редраз([пткфсхцчш])/g,'$1$2редрас$3');// Предраз- перед глухими согласными → Предрас-
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Р|р)ассч(е|ё)тл/g,'$1$2асчётл');// Рассчётливый → Расчётливый и остальные варианты
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Б|б)ези/g,'$1$2езы');// Безисходный → Безысходный и остальные варианты
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(С|с)ъ([аоуыэ])/g,'$1$2$3');// много слов типа «съумасшедший»
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(П|п)редъ([аоуыэ])/g,'$1$2ред$3');// много слов типа «предъутренний»
// Ранее писалось через дефис, теперь слитно
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(В|в)(ъ)?-(заперти)([^а-яА-ЯёЁ]|$)/g,'$1$2$3$4$5');// в-заперти → взаперти, въ-заперти → взаперти
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(В|в)иц(ъ)?-мундир([^а-яА-ЯёЁ]|$)/g,'$1$2ицмундир$4');// вицъ-мундиръ → вицмундир
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(В|в)о-время([^а-яА-ЯёЁ]|$)/g,'$1$2овремя$3');// во-время → вовремя
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(В|в)о-свояси([^а-яА-ЯёЁ]|$)/g,'$1$2освояси$3');// во-свояси → восвояси
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(В|в)о-очию([^а-яА-ЯёЁ]|$)/g,'$1$2оочию$3');// во-очию → воочию
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(В|в)сего-на-всего([^а-яА-ЯёЁ]|$)/g,'$1$2сего-навсего$3');// всего-на-всего → всего-навсего
txt = txt.replace(/(В|в)ысоко-([а-я]+)(ый|ая|ые|ой|ий|ие|го|ых|ым|их|му)([^а-яА-ЯёЁ]|$)/g,'$1ысоко$2$3$4');// высоко-нравственное → высоконравственное и проч.
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(До|до)-(бела|сыта)([^а-яА-ЯёЁ]|$)/g,'$1$2$3$4');// до-бела → добела, до-сыта → досыта
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(И|и)з-(подлобья)([^а-яА-ЯёЁ]|$)/g,'$1$2с$3$4');// изъ-подлобья → исподлобья
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Н|н)а-(голо|готове|зубок|лицо|обум|отрез|перевес|перерез|распев|смерть|стороже)([^а-яА-ЯёЁ]|$)/g,'$1$2а$3$4');// на-голо → наголо, на-готове → наготове, на-зубок → назубок, на-лицо → налицо и др.
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Н|н)е-(впопад)([^а-яА-ЯёЁ]|$)/g,'$1$2а$3$4');// не-впопад → невпопад
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(П|п)од-ряд([^а-яА-ЯёЁ]|$)/g,'$1$2одряд$3');// подъ-рядъ → подряд
txt = txt.replace(/(Д|д)(вадцати)-([а-я]+)(летний)/g,'$1$2$3$4');// двадцати-четырехлетний → двадцатичетырехлетний и проч.
txt = txt.replace(/(Т|т)(ридцати)-([а-я]+)(летний)/g,'$1$2$3$4');// тридцати-четырехлетний → тридцатичетырехлетний и проч.
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(К|к)репко-на-крепко([^а-яА-ЯёЁ]|$)/g,'$1$2репко-накрепко$3');// крепко-на-крепко → крепко-накрепко
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(К|к)рест-на-крест([^а-яА-ЯёЁ]|$)/g,'$1$2рест-накрест$3');// крест-на-крест → крест-накрест
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(На|на)-(встречу)([^а-яА-ЯёЁ]|$)/g,'$1$2$3$4');// на-встречу → навстречу
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(О|о|о́|О́)-земь/g,'$1$2земь'); // о-земь → оземь
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(П|п)ерво-на-перво([^а-яА-ЯёЁ]|$)/g,'$1$2ерво-наперво$3');// перво-на-перво → перво-наперво
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(П|п)о-(долгу)([^а-яА-ЯёЁ]|$)/g,'$1$2о$3$4');// по-долгу → подолгу
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(П|п)росто-на-просто([^а-яА-ЯёЁ]|$)/g,'$1$2росто-напросто$3');// просто-на-просто → просто-напросто
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Со|со)-(слепу)([^а-яА-ЯёЁ]|$)/g,'$1$2$3$4');// со-слепу → сослепу
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(С|с)(ъ)?-(просонья)([^а-яА-ЯёЁ]|$)/g,'$1$2$3$4$5');// с-просонья → спросонья, съ-просонья → спросонья
txt = txt.replace(/(С|с)трого-на-строго/g,'$1трого-настрого');// строго-на-строго → строго-настрого
txt = txt.replace(/(Т|т)яжело-((?!бы[ !?.,;]|ли[ .,;]|же[ .,;]))/g,'$1яжело$2');// тяжело-больной → тяжелобольной и проч.
txt = txt.replace(/(Ч|ч)исто-на-чисто/g,'$1исто-начисто');// чисто-на-чисто → чисто-начисто
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Я|я)ко-бы([^а-яА-ЯёЁ]|$)/g,'$1$2кобы$3');// яко-бы → якобы
// Ранее писалось через дефис, теперь раздельно
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Б|б)ез-устали([^а-яА-ЯёЁ]|$)/g,'$1$2ез устали$3');// без-устали → без устали
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Б|б)ыть-может([^а-яА-ЯёЁ]|$)/g,'$1$2ыть может$3');// быть-может → быть может
txt = txt.replace(/(В|в) то-же время/g,'$1 то же время');//в то-же время → в то же время
txt = txt.replace(/([а-яА-ЯёЁ])-ли([^а-яА-ЯёЁ]|$)/g,'$1 ли$2');// вряд-ли → вряд ли
txt = txt.replace(/(Д|д)олжно-быть/g,'$1олжно быть');// должно-быть → должно быть
txt = txt.replace(/(К|к)ак-(будто|раз)/g,'$1ак $2');// как-будто → как будто, как-раз → как раз
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(К|к)онце-концов([^а-яА-ЯёЁ]|$)/g,'$1$2онце концов$3');// конце-концов → конце концов
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(К|к)-ряду([^а-яА-ЯёЁ]|$)/g,'$1$2ряду$3');// к-ряду → кряду
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(М|м)ожет-быть([^а-яА-ЯёЁ]|$)/g,'$1$2ожет быть$3');// может-быть → может быть
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Н|н)а-днях([^а-яА-ЯёЁ]|$)/g,'$1$2а днях$3');// на-днях → на днях
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Потому|потому|только|Только)-что/g,'$1$2 что');// потому-что → потому что
txt = txt.replace(/ак-вояж/g,'аквояж');// сак-вояж → саквояж
txt = txt.replace(/(С|с)тало-быть/g,'$1тало быть');// стало-быть → стало быть
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Т|т)ак-(как|сказать|называем)/g,'$1$2ак $3');// так-сказать → так сказать, так-называемого → так называемого, так-как → так как
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Т|т)о-есть([^а-яА-ЯёЁ]|$)/g,'$1$2о есть$3');// то-есть → то есть
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Т|т)\.-е\.([^а-яА-ЯёЁ]|$)/g,'$1$2. е.$3');// т.-е. → т. е.
txt = txt.replace(/([^а-яА-ЯёЁ]|^)([а-яА-ЯёЁ]+)-б(ы{0,1})([^а-яА-ЯёЁ]|$)/g,'$1$2 б$3$4');// <слово>-бы → <слово> бы, <слово>-б → <слово> б
txt = txt.replace(/([^а-яА-ЯёЁ]|^)([а-яА-ЯёЁ]+)-ж(е{0,1})([^а-яА-ЯёЁ]|$)/g,'$1$2 ж$3$4');// <слово>-же → <слово> же
txt = txt.replace(/([^а-яА-ЯёЁ]|^)([а-яА-ЯёЁ]+)-ль([^а-яА-ЯёЁ]|$)/g,'$1$2 ль$3');// <слово>-ль → <слово> ль
// Ранее писалось слитно, теперь раздельно
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(В|в)с(е|ё)таки([^а-яА-ЯёЁ]|$)/g,'$1$2сё-таки$4');// всетаки → всё-таки
txt = txt.replace(/(Н|н)и[ ]+на[ ]+ч(е|ё)м[ ]+не([а-я])/g,'$1и на чём не $3');// ни на чем неоснованное → ни на чем не основанное и проч.
txt = txt.replace(/(Н|н)икогда[ ]+не([а-я]+щий)(ся)*([^а-яА-ЯёЁ]|$)/g,'$1икогда не $2$3$4');// никогда неизменяющий → никогда не изменяющий и проч.
txt = txt.replace(/(Н|н)икуда[ ]+не([а-я])/g,'$1икуда не $2');// никуда негодившийся → никуда не годившийся и проч.
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(О|о)днакож[ьъ]?(е)?([^а-яА-ЯёЁ]|$)/g,'$1$2днако ж$3$4'); // однакож[ьъ] → однако ж, однакоже → однако же
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(П|п)оочереди([^а-яА-ЯёЁ]|$)/g,'$1$2о очереди$3');// поочереди → по очереди
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Ч|ч)тож/g,'$1$2то ж'); // чтож → что ж
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(В|в)(течение|продолжение|старину)/g,'$1$2 $3'); // втечение → в течение, впродолжение → в продолжение, встарину → в старину
// Ранее писалось раздельно, теперь через дефис
txt = txt.replace(/(В|в)с(е|ё) таки([^а-яА-ЯёЁ]|$)/g,'$1с$2-таки$3');// всё таки → всё-таки
txt = txt.replace(/(М|м)ало( |-)по( |-)малу/g,'$1ало-помалу');// мало по малу и мало-по-малу → мало-помалу
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(По|по) (русски|английски|немецки|французски|итальянски|испански|голландски|датски|португальски|гречески|латыни|китайски|турецки|польски|венгерски|японски)([^а-яА-ЯёЁ]|$)/g,'$1$2-$3$4');// по русски и т.п. → по-русски
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(И|и)з за([^а-яА-ЯёЁ]|$)/g,'$1$2з-за$3');// из за → из-за
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Ч|ч)(ей|то|ем|ь[юя]|его) (нибудь|то)([^а-яА-ЯёЁ]|$)/g,'$1$2$3-$4$5');// что нибудь → что-нибудь, что то → что-то, чей то → чей-то
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(К|к)(то|ак|ако[йюе]|акого|ем|огда|аким|ому|акую) (нибудь|то)([^а-яА-ЯёЁ]|$)/g,'$1$2$3-$4$5');// кто нибудь → кто-нибудь, как нибудь → как-нибудь, какой нибудь → какой-нибудь, кто то → кто-то, как то → как-то, какой то → какой-то
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(З|з)(ачей|чью|а[кч]ем) (нибудь|то)([^а-яА-ЯёЁ]|$)/g,'$1$2$3-$4$5');// зачем нибудь → кто-нибудь, как нибудь → как-нибудь, какой нибудь → какой-нибудь, кто то → кто-то, как то → как-то, какой то → какой-то
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(С|с)(колько) (нибудь|то)([^а-яА-ЯёЁ]|$)/g,'$1$2$3-$4$5');// сколько нибудь → сколько-нибудь, сколько то → сколько-то,
// Ранее писалось раздельно, теперь слитно
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(В|в)\s(догонку|дребезги|заперти|попыхах|потьмах|припрыжку|присядку|разброд|замен|прикуску|рассыпную)([^а-яА-ЯёЁ]|$)/g,'$1$2$3$4'); // в догонку → вдогонку, в дребезги → вдребезги, в припрыжку → вприпрыжку, в присядку → вприсядку, в замен → взамен, в прикуску → вприкуску, в рассыпную → врассыпную и др.
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Д|д)о\s(красна)([^а-яА-ЯёЁ]|$)/g,'$1$2о$3$4'); // до красна → докрасна
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(З|з)а\s(панибрата)([^а-яА-ЯёЁ]|$)/g,'$1$2а$3$4'); // за панибрата → запанибрата
txt = txt.replace(/(П|п)о (близости|просту)/g,'$1о$2');// по близости → поблизости, по просту → попросту
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Н|н)а\s(легке|перерез|повал|последок|пропалую|взрыд|перебой|смарку|распашку|угад)([^а-яА-ЯёЁ]|$)/g,'$1$2а$3$4');// на перерез → наперерез, на повал → наповал, на пропалую → напропалую, на взрыд → навзрыд, на перебой → наперебой, на смарку → насмарку, на распашку → нараспашку и т.п.
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Н|н)е\sвзирая\sна/g,'$1$2е взирая на');// не взирая на → невзирая на
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Н|н)е\sв\sмоготу([^а-яА-ЯёЁ]|$)/g,'$1$2евмоготу$3');// не в моготу → невмоготу
txt = txt.replace(/(П|п)о скольку/g,'$1оскольку');// по скольку → поскольку (разве что попадётся неграмотное «по скольку рублей продаёшь»?)
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(П|п)од ряд/g,'$1$2одряд'); // под ряд → подряд (здесь может быть редкая ошибка, когда правильно именно «под ряд»)
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(П|п)ри\sч[её]м/g,'$1$2ричём'); // при ч[её]м → причём
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Н|н)а\s(равне|ряду)\sс/g,'$1$2а$3 с'); // на ряду с → наряду с, на равне с → наравне с
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Н|н)а\sут(е|ё)к/g,'$1$2аутёк'); // на утек → наутёк
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(В|в)\sпереме(ж|ш)ку/g,'$1$2переме$3ку'); // в перемежку → вперемежку, в перемешку → вперемешку
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(С|с)\sизмальства/g,'$1$2ызмальства'); // с измальства → сызмальства
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(С|с)\sпросонья/g,'$1$2просонья'); // с просонья → спросонья
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Ч|ч)ерез\sчур/g,'$1$2ересчур'); // через чур → чересчур
// Ранее писалось слитно, теперь через дефис
txt = txt.replace(/(П|п)о(видимому|прежнему)/g,'$1о-$2');// повидимому, попрежнему → по-видимому, по-прежнему
txt = txt.replace(/(С|с)ветло(сер|син|красн|желт|жёлт|зелен|зелён|оранжев|голуб|бордов|розов|коричнев|фиолетов)/g,'$1ветло-$2');// светлоголубой → светло-голубой и все варианты
txt = txt.replace(/(Т|т)(е|ё)мно(сер|син|красн|желт|жёлт|зелен|зелён|оранжев|голуб|бордов|розов|коричнев|фиолетов)/g,'$1ёмно-$3');// темносерые → тёмно-серые и все варианты
// Ранее писалось раздельно или через дефис, теперь слитно
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(В|в)([- ])пол(ъ)*голоса/g,'$1$2полголоса'); // вполголоса
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(П|п)осле([- ])завтра([^а-яА-ЯёЁ]|$)/g,'$1$2ослезавтра$3'); // после завтра и после-завтра → послезавтра
// -Ж на конце слов
txt = txt.replace(/([а-яА-ЯёЁ])-жь([^а-яА-ЯёЁ]|$)/g,'$1 ж$2');// -жь на конце: «Пришёл же-жь»
txt = txt.replace(/([^а-яА-ЯёЁ]|^)жь([^а-яА-ЯёЁ]|$)/g,'$1ж$2');// жь → ж (напр., «почему жь → почему ж»)
// Частные случаи
// Начинаются с *********** А ***********
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(А|а)куратн/g,'$1$2ккуратн');// акуратный → аккуратный
txt = txt.replace(/(А|а)пплоди/g,'$1плоди');// апплодировать → аплодировать
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(А|а)р(р)?иергард/g,'$1$2рьергард');// ариергард → арьергард, арриергард → арьергард
txt = txt.replace(/(А|а)ттак/g,'$1так'); // аттака → атака
// Начинаются с *********** Б ***********
txt = txt.replace(/(Б|б)анкрут/g,'$1анкрот'); // банкрут → банкрот
txt = txt.replace(/(Б|б)аррьер/g,'$1арьер'); // баррьеръ → барьер
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Б|б)аттаре/g,'$1$2атаре');// баттарея → батарея
txt = txt.replace(/(Б|б)ифстекс/g,'$1ифштекс');// бифстекс → бифштекс
txt = txt.replace(/(Б|б)иллиард/g,'$1ильярд');// билліардъ → бильярд
// Начинаются с *********** В ***********
txt = txt.replace(/(В|в)злохмо/g,'$1злохма');// взлохмоченного → взлохмаченного
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(В|в)нутренно([^а-яА-ЯёЁ]|$)/g,'$1$2нутренне$3'); // внутренно → внутренне
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(В|в)озж(а|и|е|у|ой|ою|ей|ам|ами|ах)([^а-яА-ЯёЁ]|$)/g,'$1$2ожж$3$4');// возжи → вожжи
txt = txt.replace(/([а-яА-ЯёЁ])йдти/g,'$1йти');// войдти → войти, найдти → найти и аналогичные
txt = txt.replace(/(В|в)оспомян/g,'$1оспомин');// воспомянаниях → воспоминаниях
txt = txt.replace(/(В|в)разсыпную/g,'$1рассыпную');// вразсыпную → врассыпную
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(В|в)ызсказ/g,'$1$2ысказ');// вызсказать → высказать
// Начинаются с *********** Г ***********
txt = txt.replace(/Гиероглиф/g,'Иероглиф');// Гиероглиф → Иероглиф
txt = txt.replace(/гиероглиф/g,'иероглиф');// гиероглиф → иероглиф
txt = txt.replace(/Гипподром/g,'Ипподром');// Гипподром → Ипподром
txt = txt.replace(/гипподром/g,'ипподром');// гипподром → ипподром
txt = txt.replace(/(Г|г)линен/g,'$1линян'); // глиненый → глиняный
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Г|г)нездышк/gm,'$1$2нёздышк'); // гнездышко → гнёздышко
txt = txt.replace(/(Г|г)руп([^п])/g,'$1рупп$2');// групировались → группировались
// Начинаются с *********** Д ***********
txt = txt.replace(/(Д|д)ал(е|ё)кия/g,'$1алёкие');// далекия → далёкие
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Д|д)евченк/g,'$1$2евчонк');// девченка → девчонка
txt = txt.replace(/(Д|д)екольтэ/g,'$1екольте');// декольтэ → декольте
txt = txt.replace(/(Д|д)жентльмэн/g,'$1жентльмен');// джентльмэн → джентльмен
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Д|д)осчат/g,'$1$2ощат');// досчатый → дощатый
txt = txt.replace(/(Д|д)отрогива([а-я])/g,'$1отрагива$2');// дотрогиваться → дотрагиваться
txt = txt.replace(/(Д|д)ышет/g,'$1ышит');// дышет → дышит
// Начинаются с *********** Е ***********
// Начинаются с *********** Ё ***********
// Начинаются с *********** Ж ***********
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Ж|ж)олт/g,'$1$2ёлт');// жолтый → жёлтый
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Ж|ж)олуд/g,'$1$2ёлуд');// жолудь → жёлудь
// Начинаются с *********** З ***********
txt = txt.replace(/(З|з)аваленк/g,'$1авалинк');// заваленка → завалинка
txt = txt.replace(/(З|з)аведыв/g,'$1аведов');// заведывал → заведовал
txt = txt.replace(/(З|з)агар(е|а)(лся|лась|лось|лись|лся|ться|ется|емся)/g,'$1агор$2$3');// загарался → загорался и варианты
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(З|з)апрег/g,'$1$2апряг');// запрег → запряг
txt = txt.replace(/(З|з)верок/g,'$1верёк');// зверок → зверёк
// Начинаются с *********** И ***********
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(И|и)гумени(ей|я)/g,'$1$2гумень$3');// игуменией → игуменьей
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(И|и)конастас/g,'$1$2коностас'); // иконастас → иконостас
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(И|и)мян/g,'$1$2мен'); // имянной → именной и др.
txt = txt.replace(/(И|и)скуств/g,'$1скусств');// искуство → искусство
txt = txt.replace(/(И|и)талиян(ск|ц)/g,'$1тальян$2');// италиянский → итальянский, Италиянцы → Итальянцы
// Начинаются с *********** Й ***********
// Начинаются с *********** К ***********
txt = txt.replace(/(К|к)апишо/g,'$1апюшо');// капишон → капюшон
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(К|к)арэ([^а-яА-ЯёЁ]|$)/g,'$1$2аре$3');// карэ → каре
txt = txt.replace(/(К|к)атарр/g,'$1атар');// катарр → катар
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(К|к)лиэнт/g,'$1$2лиент');// клиэнт → клиент
txt = txt.replace(/(К|к)онкурр/g,'$1онкур');// конкурренція → конкуренция
txt = txt.replace(/(К|к)оммис/g,'$1омис');// коммиссар → комиссар
txt = txt.replace(/(К|к)онтрбас/g,'$1онтрабас'); // контрбас → контрабас
txt = txt.replace(/(К|к)онфект/g,'$1онфет');// конфекта → конфета
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(К|к)орридор/g,'$1$2оридор');// корридор → коридор
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(К|к)умач(е|ё)в/g,'$1$2умачов');// кумачевый, кумачёвый → кумачовый
// Начинаются с *********** Л ***********
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Л|л)эди([^а-яА-ЯёЁ]|$)/g,'$1$2еди$3');// лэди → леди
// Начинаются с *********** М ***********
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(М|м)ежь([^а-яА-ЯёЁ]|$)/g,'$1$2еж$3');// межь → меж
//txt = txt.replace(/ильон([^а-яА-ЯёЁ]|$)/g,'иллион$1');// мильон → миллион /* Стилистическая замена! --Lozman */
// Начинаются с *********** Н ***********
txt = txt.replace(/(Н|н)авожден/g,'$1аважден');// навождение → наваждение
txt = txt.replace(/(Н|н)астеж([^а-яА-ЯёЁ]|$)/g,'$1астежь$2');
txt = txt.replace(/(Н|н)ыньче/g,'$1ынче');// ныньче → нынче
// Начинаются с *********** О ***********
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(О|о)б его([^а-яА-ЯёЁ]|$)/g,'$1$2 его$3');// об его → о его
txt = txt.replace(/(О|о)бращик/g,'$1бразчик');// обращик → образчик
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(О|о)дне(х|ми)([^а-яА-ЯёЁ]|$)/g,'$1$2дни$3$4');// однех → одних, однеми → одними
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(О|о)(д)*не(м)*([^а-яА-ЯёЁ]|$)/g,'$1$2$3ни$4$5'); // Оне → Они, оне → они, одне → одни, однем → одним
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Пра|пра)*(О|о)тцем([^а-яА-ЯёЁ]|$)/g,'$1$2$3тцом$4');// отцем → отцом, праотцем → праотцом
// Начинаются с *********** П ***********
txt = txt.replace(/(п|П)анегер/g,'$1панегир'); // панегерик → панегирик
txt = txt.replace(/(п|П)арч(е|ё)в/g,'$1арчов'); // парчёвый (парчевый) → парчовый
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(П|п)енснэ([^а-яА-ЯёЁ]|$)/g,'$1$2енсне$3');// пенснэ → пенсне
txt = txt.replace(/(П|п)иес/g,'$1ьес'); // пиеса → пьеса
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(П|п)искар/g,'$1$2ескар');// пискарь → пескарь
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(П|п)ловуч/g,'$1$2лавуч'); // пловучий → плавучий и варианты
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(П|п)лэд(а|у|е|ами|ом|ы)*([^а-яА-ЯёЁ]|$)/g,'$1$2лед$3$4'); // плэд → плед
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(П|п)одъяч/g,'$1$2одьяч');// подъячий → подьячий
txt = txt.replace(/(П|п)опер(е|ё)г/g,'$1опер$2к'); // поперег → поперек
txt = txt.replace(/(П|п)ортмонэ/g,'$1ортмоне'); // портмонэ → портмоне
txt = txt.replace(/(П|п)остеле([^а-я])/g,'$1остели$2');// в постеле → в постели
txt = txt.replace(/(П|п)очталион/g,'$1очтальон');// почталион → почтальон
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(П|п)ривиллег/g,'$1$2ривилег'); // привиллегии → привилегии
txt = txt.replace(/(П|п)рийд(ё|е)/g,'$1рид$2');// прийдёт → придёт
txt = txt.replace(/(П|п)ристрастьи/g,'$1ристрастье');// о пристрастьи → о пристрастье
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(П|п)роповедыв/g,'$1$2роповедов');// проповедывать → проповедовать
txt = txt.replace(/(П|п)роэкт/g,'$1роект');// проэкт → проект
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(П|п)роэкци/gm,'$1$2роекци');// проэкция → проекция
txt = txt.replace(/(П|п)унсов/g,'$1унцов');// пунсовый → пунцовый
// Начинаются с *********** Р ***********
txt = txt.replace(/(Р|р)асскащик/g,'$1ассказчик');// расскащик → рассказчик
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Р|р)азсч(е|ё)т/g,'$1$2асчёт');// разсчёт → расчёт, дубль выше в Приставки
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Р|р)ессурс/g,'$1$2есурс');// рессурс → ресурс
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Р|р)ешотк/g,'$1$2ешётк');// решотка → решётка
txt = txt.replace(/(Р|р)озыгрыва/g,'$1азыгрыва');// розыгрывать → разыгрывать
// Начинаются с *********** С ***********
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(С|с)еребрянн/g,'$1$2еребрян');// серебрянный → серебряный
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(С|с)ериозн/g,'$1$2ерьёзн');// сериозно → серьёзно
txt = txt.replace(/([^а-яА-ЯёЁ]|^)Снурок/g,'$1Шнурок'); // Снурок → Шнурок
txt = txt.replace(/([^а-яА-ЯёЁ]|^)снурок/g,'$1шнурок'); // снурок → шнурок
txt = txt.replace(/([^а-яА-ЯёЁ]|^)Снурк([а-я])/g,'$1Шнурк$2'); // Снурка → Шнурка
txt = txt.replace(/([^а-яА-ЯёЁ]|^)снурк([а-я])/g,'$1шнурк$2'); // снурка → шнурка
txt = txt.replace(/(С|с)оветыв/g,'$1оветов');// советывал → советовал
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(С|с)тклянк/g,'$1$2клянк'); // стклянка → склянка
txt = txt.replace(/([^а-яА-ЯёЁ]|^)стор(а|у|е|ой|ами|ы)*([^а-яА-ЯёЁ]|$)/g,'$1штор$2$3'); // стор → штор
txt = txt.replace(/([^а-яА-ЯёЁ]|^)Стор(а|у|е|ой|ами|ы)*([^а-яА-ЯёЁ]|$)/g,'$1Штор$2$3'); // Стор → Штор
txt = txt.replace(/(С|с)умн/g,'$1омн');// усумнился → усомнился (также сумнение и т.п.)
txt = txt.replace(/(С|с)частьи/g,'$1частье');// о счастьи → о счастье
// Начинаются с *********** Т ***********
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Т|т)аллер/g,'$1$2алер');// таллер → талер
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Т|т|прот|Прот)анцов([^щ])/g,'$1$2анцев$3');// танцов → танцев, танцовать → танцевать, протанцовал → протанцевал (но «танцовщик»)
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Т|т)фу([^а-яА-ЯёЁ]|$)/g,'$1$2ьфу$3');// тфу → тьфу
// Начинаются с *********** У ***********
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(У|у)жь([^а-яА-ЯёЁ]|$)/g,'$1$2ж$3');// ужь → уж
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(У|у) ней([^а-яА-ЯёЁ]|$)/g,'$1$2 неё$3');// у ней → у неё
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(у|У)своив([а-яА-ЯёЁ]|$)/g,'$1$2сваив$3'); // усвоивал → усваивал
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(У|у)становли/g,'$1$2станавли');// установливать → устанавливать
// Начинаются с *********** Ф ***********
// Начинаются с *********** Х ***********
// Начинаются с *********** Ц ***********
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Ц|ц)ипочк/g,'$1$2ыпочк');// ципочка → цыпочка
txt = txt.replace(/(ц|Ц)ырюльн/g,'$1ирюльн'); // цырюльник → цирюльник
// Начинаются с *********** Ч ***********
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Ч|ч)ерезмерн/g,'$1$2резмерн'); // черезмерный → чрезмерный
txt = txt.replace(/(Ч|ч)ерез(-)*чур/g,'$1ересчур');// черезчур, через-чур → чересчур
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Ч|ч)етыреугольн/g,'$1$2етырёхугольн');// четыреугольник → четырёхугольник и варианты
txt = txt.replace(/(Четыр|четыр|Тр|тр)ех-стопн([а-яА-ЯёЁ]|$)/g,'$1ёхстопн$2');//четырех-стопный → четырёхстопный, трех-стопный → трёхстопный
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Ч|ч)орт/g,'$1$2ёрт'); // чорт → чёрт
// Начинаются с *********** Ш ***********
txt = txt.replace(/(Ш|ш)кап/g,'$1каф');// шкап → шкаф
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Ш|ш)опот/g,'$1$2ёпот');// шопот → шёпот
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Ш|ш)олк/g,'$1$2ёлк');// шолк → шёлк
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Ш|ш)офф(е|е)р/g,'$1$2офёр');// шоффёр → шофёр
// Начинаются с *********** Щ ***********
// Начинаются с *********** Э ***********
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Э|э)ксплоат/g,'$1$2ксплуат');// эксплоатация → эксплуатация
// Начинаются с *********** Ю ***********
// Начинаются с *********** Я ***********
// Другое
// *********** С корнем «Рост/Рощ/Росл» ***********
txt = txt.replace(/(В|в)зрощ/g,'$1зращ');// взрощенный → взращенный
txt = txt.replace(/(В|в)ырост/g,'$1ыраст');// выростает → вырастает
txt = txt.replace(/(В|в)озрасл/g,'$1озросл');// возрасли → возросли
txt = txt.replace(/(В|в)озрост/g,'$1озраст');// возростающем → возрастающем
txt = txt.replace(/(Р|р)азрост/g,'$1азраст');// разростается → разрастается
txt = txt.replace(/одроста/g,'одраста');// подростал → подрастал и варианты
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Р|р)ост(ёшь|ешь|ём|ем|ёте|ете|и|ёт|ет|ут)([^а-яА-ЯёЁ]|$)/g,'$1$2аст$3$4'); // ростёт → растёт и все варианты (внимательно со словом росту — глагол неправильный, но существительное верное, нельзя автоматически заменять)
txt = txt.replace(/ростущ/g,'растущ');// ростущий → растущий и варианты
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Не|не)*(с|С)(ча|тра)сти([а-яё]{1,2})([^а-яА-ЯёЁ]|$)/g,'$1$2$3$4сть$5$6'); // счастия → счастья, страстию → страстью, несчатия и т.п.
txt = txt.replace(/(с|С)(ча|тра)стьй/g,'$1$2стий'); // счастьй → счастий
txt = txt.replace(/(П|п)редместьй/g,'$1редместий'); // предместьй → предместий
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Н|н)*(Е|е)я([^а-яА-ЯёЁ]|$)/g,'$1$2$3ё$4'); // нея → неё, ея → её
txt = txt.replace(/ъи/g,'ы');// подъитоживать → подытоживать и аналогичные
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(ка|Ка|та|Та|эта|Эта|Вся|вся|Ника|ника)кия([^а-яА-ЯёЁ]|$)/g,'$1$2кие$3'); // какия, такия, этакия и т.п. → какие, такие, этакие и т.п.
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(пр)*(И|и)тти([^а-яА-ЯёЁ]|$)/g,'$1$2$3дти$4');// итти → идти, притти → придти
txt = txt.replace(/(П|п)окоива([а-я])/g,'$1окаива$2');// успокоивать → успокаивать (но «успокоив», «успокоившись»)
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(П|п)окоющи/g,'$1$2окоящи'); // покоющиеся → покоящиеся
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Е|е)слиб(ы)*([^а-яА-ЯёЁ]|$)/g,'$1$2сли б$3$4');// еслибы → если бы, еслиб → если б
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(К|к)ашнэ([^а-яА-ЯёЁ]|$)/g,'$1$2ашне$3');// кашнэ → кашне
txt = txt.replace(/(Из|из|пере|Пере)вощик/g,'$1возчик');// извощик → извозчик, перевощик → перевозчик
txt = txt.replace(/(П|п)рикащик/g,'$1риказчик');// прикащиков → приказчиков
txt = txt.replace(/(Р|р)азнощик/g,'$1азносчик');// разнощик → разносчик
txt = txt.replace(/(Б|б)рилиант/g,'$1риллиант');// брилианты → бриллианты
txt = txt.replace(/(З|з)аражд/g,'$1арожд');// зараждение → зарождение
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Р|р)етори/g,'$1$2итори');// реторика → риторика
txt = txt.replace(/(З|з)атрогив/g,'$1атрагив');// затрогивал → затрагивал
txt = txt.replace(/(В|в)ыработыв/g,'$1ырабатыв');// выработывались → вырабатывались
txt = txt.replace(/(Р|р)азработыв/g,'$1азрабатыв');// разработывать → разрабатывать
txt = txt.replace(/(Т|т)р(е|ё)хугольн/g,'$1реугольн');// трехугольною → треугольною
txt = txt.replace(/(Г|г)аллер/g,'$1алер');// галлерея → галерея
txt = txt.replace(/(К|к)истию/g,'$1истью');// кистию → кистью (шире нельзя из-за «амнистию» и др.)
txt = txt.replace(/(В|в)олкан/g,'$1улкан');// волкан → вулкан
txt = txt.replace(/(Н|н)аказу(е|ю)/g,'$1аказыва$2');// наказуются → наказываются и варианты
txt = txt.replace(/(Н|н)епридвид/g,'$1епредвид');// непридвидимые → непредвидимые
txt = txt.replace(/(Д|д)иэт/g,'$1иет');// диэта → диета
txt = txt.replace(/(Г|г)остинни/g,'$1остини');// гостинница → гостиница
txt = txt.replace(/(С|с)колопандр/g,'$1колопендр');// сколопандра → сколопендра
txt = txt.replace(/(Л|л)юбовию/g,'$1юбовью');// любовию → любовью
txt = txt.replace(/(К|к)ровию/g,'$1ровью');// кровию → кровью
txt = txt.replace(/(Н|н)ебольш(е|ё)(го|й|му)/g,'$1ебольшо$3');// небольшего → небольшого
txt = txt.replace(/(Л|л)аншафт/g,'$1андшафт');// ланшафт → ландшафт
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Л|л)иц(е|ё)м([^а-яА-ЯёЁ]|$)/g,'$1$2ицом$4');// лицем → лицом
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Г|г)оспож(е|ё)й([^а-яА-ЯёЁ]|$)/g,'$1$2оспожой$4');// госпожей → госпожой
txt = txt.replace(/(О|о)благорож/g,'$1благораж');// облагороживающее → облагораживающее
txt = txt.replace(/(Т|т)еоритич/g,'$1еоретич');// теоритическое → теоретическое
txt = txt.replace(/(Р|р)асчит/g,'$1ассчит');// расчитан → рассчитан
txt = txt.replace(/(П|п)риобревш/g,'$1риобретш');// приобревший → приобретший
txt = txt.replace(/(Ш|ш)ирокия/g,'$1ирокие');// широкия → широкие
txt = txt.replace(/(Н|н)умер(ах|а|ами|е)*([^а-яА-ЯёЁ]|$)/g,'$1омер$2$3');// нумера → номера (но «нумерация»)
txt = txt.replace(/(А|а)ммуниц/g,'$1муниц');// аммуницию → амуницию
txt = txt.replace(/(П|п)рочия/g,'$1рочие');// прочия → прочие
txt = txt.replace(/(Б|б)аталион/g,'$1атальон');// баталионе → батальоне
txt = txt.replace(/(Д|д)и(л)+е(т)+ант/g,'$1илетант');// диллетантом → дилетантом
txt = txt.replace(/(П|п)раотцов/g,'$1раотцев');// праотцов → праотцев
txt = txt.replace(/аррикатур/g,'арикатур');// каррикатурный → карикатурный
txt = txt.replace(/(Р|р)азч(е|ё)т/g,'$1асчёт');// разчетливо → расчётливо
txt = txt.replace(/(П|п)ротивуполож/g,'$1ротивополож');// противуположность → противоположность и все варианты
txt = txt.replace(/(С|с)остарел/g,'$1остарил');// состарелся → состарился
txt = txt.replace(/(С|с)остаревш/g,'$1остаривш');// состаревшийся → состарившийся
txt = txt.replace(/(О|о)тверзт/g,'$1тверст');// отверзтый → отверстый
txt = txt.replace(/(П|п)арале/g,'$1аралле');// паралель → параллель
txt = txt.replace(/(Э|э)кспромпт/g,'$1кспромт');// экспромпта → экспромта
txt = txt.replace(/(А|а)ссессор/g,'$1сессор');// ассессора → асессора
txt = txt.replace(/(П|п)отрогива([а-я])/g,'$1отрагива$2');// дотрогиваться → дотрагиваться
txt = txt.replace(/(П|п)оровнял([а-я])/g,'$1оравнял$2');// поровнялся → поравнялся
txt = txt.replace(/(М|м)аиолик([а-я])/g,'$1айолик$2');// маиолика → майолика
txt = txt.replace(/(З|з)доровьи/g,'$1доровье');// здоровьи → здоровье
txt = txt.replace(/(Р|р)аздумьи/g,'$1аздумье');// раздумьи → раздумье
txt = txt.replace(/(Б|б)оч(е|ё)н(о)*к/g,'$1очон$3к');// боченок → бочонок
txt = txt.replace(/(П|п)лохия/g,'$1лохие');// плохия → плохие
txt = txt.replace(/(У|у)достоивающ/g,'$1достаивающ');// удостоивающего → удостаивающего
txt = txt.replace(/(С|с)овершон/g,'$1овершён');// совершонном → совершённом
txt = txt.replace(/(Р|р)озня/g,'$1азня');// рознял → разнял и т.п.
txt = txt.replace(/(Д|д)иферент/g,'$1ифферент');// диферент → дифферент и т.п.
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Т|т)ихия/g,'$1$2ихие');// тихия → тихие, но не стихия
txt = txt.replace(/хъэтажн/g,'хэтажн');// двухъэтажный → двухэтажный и др.
txt = txt.replace(/(О|о)ффициа/g,'$1фициа');// оффициальный → официальный, оффициант → официант и др.
txt = txt.replace(/(К|к)ристалльн/g,'$1ристальн');// кристалльный → кристальный и др. (но кристалл)
txt = txt.replace(/(К|к)ожанн/g,'$1ожан');// кожанный → кожаный и др.
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Б|б)лизь([^а-яА-ЯёЁ]|$)/g,'$1$2лиз$3'); // близь → близ
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Н|н)едоумень(.{1,2})/g,'$1$2едоумени$3'); // недоуменье → недоумение и варианты
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Во|во|Подо|подо|До|до|За|за|На|на|Ото|ото|Пере|пере|По|по|При|при|Про|про|Произо|произо|У|у)?(Ш|ш)ол(ся)*([^а-яА-ЯёЁ]|$)/g,'$1$2$3ёл$4$5'); // зашол → зашёл и все варианты
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(М|м)ятел/g,'$1$2етел'); // мятель → метель
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(П|п)салтир/g,'$1$2салтыр'); // Псалтирь → Псалтырь
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(С|с)обственоручн/g,'$1$2обственноручн'); // собственоручное → собственноручное
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(М|м)ущин/gm,'$1$2ужчин'); // мущина → мужчина
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(К|к)упэ([^а-яА-ЯёЁ]|$)/gm,'$1$2упе$3'); // купэ → купе
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Г|г)алстух/gm,'$1$2алстук'); // галстух → галстук
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Т|т)урнэ/gm,'$1$2урне'); // турнэ → турне
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Ч|ч)орн/gm,'$1$2ёрн'); // чорный → чёрный
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(П|п)анцыр/gm,'$1$2анцир'); // панцырь → панцирь
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(П|п)аннихид/gm,'$1$2анихид'); // паннихида → панихида
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(Ц|ц)ипл(ё|е)н/gm,'$1$2ыпл$3н'); // циплёнок → цыплёнок
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(З|з)адхл/gm,'$1$2атхл'); // задхлый → затхлый
txt = txt.replace(/([^а-яА-ЯёЁ]|^)(П|п)репорц/gm,'$1$2ропорц'); // препорция → пропорция
// Изменившиеся варианты фамилий
txt = txt.replace(/Монтан(я|ь|ю)/g,'Монтен$1');// Монтань → Монтень
txt = txt.replace(/Горацие([^а-яА-ЯёЁ]|$)/g,'Горации$1');// Горацие → Горации
txt = txt.replace(/Виргил(и|ь)/g,'Вергили');// Виргилий → Вергилий
txt = txt.replace(/Езоп/g,'Эзоп');// Езоп → Эзоп
// Изменившиеся географические названия
txt = txt.replace(/Нижн([а-я]+)-Новгород/g,'Нижн$1 Новгород');// Нижний-Новгород → Нижний Новгород
txt = txt.replace(/Кишен(е|ё)в/g,'Кишинёв');// Кишенёв → Кишинёв
txt = txt.replace(/Миссиссипи/g,'Миссисипи');// Миссиссипи → Миссисипи
txt = txt.replace(/Парнасс/g,'Парнас');// Парнасс → Парнас
txt = txt.replace(/Аустерлицом/g,'Аустерлицем');// Аустерлицом → Аустерлицем
txt = txt.replace(/Волховцем/g,'Волховцом');// Волховцем → Волховцом
txt = txt.replace(/Капитолие([^а-яА-ЯёЁ]|$)/g,'Капитолии$1');// о Капитолие → о Капитолии
// Слитное написание «не», которое теперь раздельное
txt = txt.replace(/(Н|н)есовсем/g,'$1е совсем');// несовсем → не совсем
txt = txt.replace(/(Н|н)евполне/g,'$1е вполне');// невполне → не вполне
// Возврат защищённых слов
txt = txt.replace(/@@(З|з)-0001@@/g,'$1антедеския');// зантедеския
txt = txt.replace(/@@(П|п)-0002@@/g,'$1ереския');// переския
txt = txt.replace(/@@(Ц|ц)-0003@@/g,'$1инния');// цинния
txt = txt.replace(/@@(В|в)-0004@@/g,'$1ыя');// выя
txt = txt.replace(/@@(Б|б)-0005@@/g,'$1езбрежия');// безбрежия
txt = txt.replace(/@@(М|м)-0006@@/g,'$1алоснежия');// малоснежия
txt = txt.replace(/@@(О|о)-0007@@/g,'$1ружия');// оружия и всеоружия
txt = txt.replace(/@@0008@@/g,'мужия');// двое-, трое- и многомужия
txt = txt.replace(/@@(П|п)-0009@@/g,'$1олукружия');// полукружия
txt = txt.replace(/@@(Г|г)-0010@@/g,'$1уберния');// губерния
txt = txt.replace(/@@(Г|г)-0011@@/g,'$1уерния');// гуерния
txt = txt.replace(/@@(С|с)-0012@@/g,'$1атурния');// сатурния
txt = txt.replace(/@@(К|к)-0013@@/g,'$1алифорния');// калифорния
txt = txt.replace(/@@(У|у)-0014@@/g,'$1частию');// частию
txt = txt.replace(/@@(У|у)-0015@@/g,'$1частью');// частью
txt = txt.replace(/@@0016@@/g,'Чикаго');// Чикаго
txt = txt.replace(/@@0017@@/g,'Батыя');// Батыя
txt = txt.replace(/@@(П|п)-0018@@/g,'$1ресвятыя');// пресвятыя
txt = txt.replace(/@@(П|п)-0019@@/g,'$1одножия');// подножия
txt = txt.replace(/@@(Н|н)-0020@@/g,'$1ародовластию');// народовластию
txt = txt.replace(/@@0021@@/g,'Божия');// Божия
txt = txt.replace(/@@(Благ|благ|Велик|велик|Добр|добр|Просто|прост|Равн|равн)-0022@@/g,'$1одушия');// добродушия, простодушия, равнодушия
txt = txt.replace(/@@(Дву|дву|Трех|Трёх|трех|трёх|Четверо|четверо|Четырёх|четырёх|Четырех|четырех|Пяти|пяти|Шести|шести|Семи|семи|Восьми|восьми)-0023@@/g,'$1стишия');// двустишия и т.п.
//--- Конец блока регулярных выражений для замены текста. Пожалуйста, не удаляйте этот комментарий.
restoreAll();
}
function r(r1, r2){ txt = txt.replace(r1, r2) }
function hide(expr){
r(RegExp(expr, 'mgi'), function(s){
if ('0'.replace('0','$$') == '$') s = s.replace(/\$/g, '$$$$'); //$ in string is special, except in IE
hidden[++hidIdx] = s;
return '\x01' + hidIdx + '\x02';
})
}
function restoreAll(){
for (var i=hidIdx; i>=0; i--) r('\x01' + i + '\x02', hidden[i])
}
}