Показать сообщение отдельно
  #1 (permalink)  
Старый 23.03.2016, 12:30
Аспирант
Отправить личное сообщение для SKLNSK Посмотреть профиль Найти все сообщения от SKLNSK
 
Регистрация: 27.02.2015
Сообщений: 66

Парсер фактического адреса
Задача - вытащить с помощью регулярного выражения из строки название города, улицы, дома, корпуса если есть, квартиры/офиса, почтового индекса.

Начал с такого кода
<head>
    <meta charset="UTF-8" />
    <title>test</title>
	<script src="http://code.jquery.com/jquery-latest.js"></script>
	
</head>

<body>

<textarea id="mytxt" style="width:400px;height:300px;">
</textarea>

<script>

var str='ИП фывфыв В.А., Индивидуальный предприниматель фыв выфв Алексеевна, ИНН 772603327122227226, КПП 42365, адрес 117525 г.Москва ул.Петрозаводская д.16 кв.12. '+
'кв.65; банк ЗАО «ыыыы» г.Москвы, БИК 3333333, к/с 44444, р/с 555555555 тел +73832331444 проверка';

re = /ИНН (\d+)/i;
found = str.match(re);
console.log('ИНН '+found[1]);

re = /КПП (\d+)/i;
found = str.match(re);
console.log('КПП '+found[1]);

re = /(?:р\/с|рс) (\d+)/i;
found = str.match(re);
console.log('р/с '+found[1]);

re = /(?:к\/с|кс|корр|корр\.|кор счет|кор счёт|кор\.счет|кор\.счёт) (\d+)/i;
found = str.match(re);
console.log('к/с '+found[1]);

re = /БИК (\d+)/i;
found = str.match(re);
console.log('БИК '+found[1]);

// АДРЕС !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//re = /д.(\d+\\d+) к.(\d+)/i;
//re = /д.(\d+\\\d+)/i;
//re = /г.(\D+) ул.(\D+) д.(\d+) к.(\d+)\s/i;
re = /г.(\D+) ул.(\D+) д.(\d+) кв.(\d+)/i;
found = str.match(re);
var addr='';
if (found) addr=found[0];
console.log('адрес '+addr);
$("#mytxt").val($("#mytxt").val()+'адрес: '+addr+'\n');
if (found[1]) $("#mytxt").val($("#mytxt").val()+'город: '+found[1]+'\n');
if (found[2]) $("#mytxt").val($("#mytxt").val()+'улица: '+found[2]+'\n');
if (found[3]) $("#mytxt").val($("#mytxt").val()+'дом: '+found[3]+'\n');
if (found[4]) $("#mytxt").val($("#mytxt").val()+'кв: '+found[4]+'\n');

re = /\+7(\d+)/i;
found = str.match(re);
console.log('телефон: '+found[1]);

</script>

</body>
Ответить с цитированием