Может кто помочь с регулярками, есть вот такая строка
ТЕРРИТОРИАЛЬНЫМ ПУНКТОМ УФМС РОССИИ ПО ПЕНЗЕНСКОЙ ОБЛ ПЕНЗЕНСКОМ РАИОНЕ 10 05 2010 560 040 ЁЭ ЛЫ 90 ЁЁ 5 ОГ 19 53 4 АГАПОВА ОАН 394 ВЕ 34
ЕКАТЕРИНА 798 МИХАИЛОВНА 398 1 ЖЕН 12 05 1996 2
ГОР ПЕНЗА ПЕНЗЕНСКОГО НА ПЕНЗЕНСКОЙ ОБЛ
Нужно вырезать с нее все цифры кроме 10 05 2010 560 040 (это первые 14 цифр) и 12 05 1996 это 8 цифр всегда идут сразу после слова ЖЕН/МУЖ Нужно получить вот такой текст
ТЕРРИТОРИАЛЬНЫМ ПУНКТОМ УФМС РОССИИ
ПО ПЕНЗЕНСКОЙ ОБЛ ПЕНЗЕНСКОМ РАИОНЕ 10 05 2010 560 040 ЁЭ ЛЫ ЁЁ
ОГ АГАПОВА ОАН ВЕ ЕКАТЕРИНА МИХАИЛОВНА ЖЕН 12 05 1996 ГОР ПЕНЗА ПЕНЗЕНСКОГО НА ПЕНЗЕНСКОЙ ОБЛ
Сейчас для таких дел нанимают один-два десятка людей на бирже (по типу "распознай капчу"), стОит копейки, а результат и скорость высокие. Кодом же можно облегчить распознавание, но полностью полагаться только на скрипты нельзя.
Для конкретного случая - только многопроходная замена (но, всё равно - нужен постоянный контроль и добавление всё новых условий - универсального ответа или алгоритма нет). Попробуйте скопировать и вставить в верхнее поле текст, который нужно почистить:
let sSTR, rEXP, sStart, sMid, sEnd;
input.addEventListener('input', function() {
sSTR = this.value;
rEXP = new RegExp('^(\\D+)([\\s\\d]+)[\\S\\s]+$', 'gim');
sStart = sSTR.replace(rEXP, '$1$2');
rEXP = new RegExp('^[\\S\\s]+((ЖЕН|МУЖ)[\\S\\s]+)$', 'gim');
sEnd = sSTR.replace(rEXP, '$1');
rEXP = new RegExp(`^${sStart}([\\S\\s]+)${sEnd}$`, 'gim');
sMid = sSTR.replace(rEXP, '$1').replace(/\d/gim, '');
output.value = `${sStart}${sMid}${sEnd.replace(/\D(\d)\D/gim, ' ')}`.replace(/\s([\D]{1,2})\s/gim, ' ').replace(/\u0020{2,}/gim, ' ');
});
body{display:flex;flex-flow:column nowrap;justify-content:space-around;align-items:center;height:100vh;margin:0}textarea{height:40%;width:90%}
<textarea id="input"></textarea><textarea id="output"></textarea>
Можно так: Считаем кол-во цифр в строке. Определяем номера цифр (по счёту), которые нам нужно удалить (т.е. больше 10 и меньше на 8, чем количество цифр). Проходимся циклом по строке и удаляем нужные цифры.
Для подсчёта количества цифр в строке можно с помощью replace
заменить цифры на ""
и сравнить длины оригинальной строки и получившейся. Узнать является ли символ цифрой можно с помощью регулярок (пост об этом должен быть на stackoverlow, вы без труда найдёте)
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
У меня есть необходимость в React приложение добавить чат поддержки сделанный на bitrix - это скрипт, который обычно добавляется в файл indexhtml