Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 09.02.2017, 14:53
Профессор
Отправить личное сообщение для psiklop Посмотреть профиль Найти все сообщения от psiklop
 
Регистрация: 04.03.2015
Сообщений: 163

Сообщение от ksa Посмотреть сообщение
Знание этого не принципиально.
Мое сообщение призвано донести до тебя тот факт, что есть очень большое разнообразие "нестандартных" данных по ФИО...
Ну так бы и написал сразу, а то у нас, у нас в задачке, то, се...
Хотя этот факт всем хорошо известен.
Ответить с цитированием
  #12 (permalink)  
Старый 09.02.2017, 14:57
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от psiklop
Ну так бы и написал сразу
Я так сразу и написал.
Де без БД с нестандартом тебе не обойтись...
Ответить с цитированием
  #13 (permalink)  
Старый 09.02.2017, 15:07
Профессор
Отправить личное сообщение для psiklop Посмотреть профиль Найти все сообщения от psiklop
 
Регистрация: 04.03.2015
Сообщений: 163

А оно нужно так серьезно? Простая функция для формы, функция расставит заглавные буквы уже хорошо (и это самое важное), к примеру в неправильном порядке пишут 1%, нестандартных фамилий 10%, функция снизит значит неправильность до 0.1%

Выбирать фио по подсказкам, честно скажу вызывает недоумение, и пользоваться совсем не хочется, скорее сам напишу
Ответить с цитированием
  #14 (permalink)  
Старый 09.02.2017, 15:25
Профессор
Отправить личное сообщение для psiklop Посмотреть профиль Найти все сообщения от psiklop
 
Регистрация: 04.03.2015
Сообщений: 163

На самом деле самая полезная вещь которая может быть от подобных сервисов это определение индекса по адресу, все остальное это чепухень, но платить не хочется, я знаю такой бесплатный способ, но написать не могу.
Ответить с цитированием
  #15 (permalink)  
Старый 09.02.2017, 16:02
Профессор
Отправить личное сообщение для psiklop Посмотреть профиль Найти все сообщения от psiklop
 
Регистрация: 04.03.2015
Сообщений: 163

Я делал автозаполнение адреса через api вконтакте, и нельзя надеяться на 100%, там совсем не все улицы, попробовал сейчас dadata и тоже самое, отсутствуют те что и вконтакте, а вы еще и дома пытаетесь подставлять, еще скажу что многие тупят с этим автозаполнением, даже когда страна, город и улица в разных полях, а когда все в одном поле это реально сложно и лучше так не делать, покупатель запарится и уйдет.
Ответить с цитированием
  #16 (permalink)  
Старый 09.02.2017, 18:55
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Нормализация ФИО
psiklop,
вариант ...
function fiofix(str) {
    var f = /(ин|ина|ын|ына|ов|ова|ев|ева|ской|ская|цкой|их|ых|енко|ко|ук|юк|ский|ская|чный|чная)$/;
    var o = /(ич|вна|чна)$/;
    var i = /^(Марина|Ирина)$/;
    return str.trim().split(/\s+/)
        .map(function(s) {
            return s.toLowerCase().replace(/(^|\-)(\S)/g, function g(a, b, c) {
                return b + c.toUpperCase()
            });

        }).sort(function(a, b) {
            a = i.test(a) ? 1 : f.test(a) ? 0 : o.test(a) ? 2 : 1;
            b = i.test(b) ? 1 : f.test(b) ? 0 : o.test(b) ? 2 : 1;
            return a - b
        }).join(" ")
};

alert(fiofix(" сергеевна ИРИНА карпова  "));
alert(fiofix(" сергеевна ИРИНА карпова-карпенко  "));

Последний раз редактировалось рони, 09.02.2017 в 23:26.
Ответить с цитированием
  #17 (permalink)  
Старый 09.02.2017, 23:11
Профессор
Отправить личное сообщение для psiklop Посмотреть профиль Найти все сообщения от psiklop
 
Регистрация: 04.03.2015
Сообщений: 163

Так конечно вообще коротко получилось
Не знаю конечно насчет 3 массива, все равно женских имен слишком много
Еще моя исправляла двойные фамилии типа карпова-карпенко
Ответить с цитированием
  #18 (permalink)  
Старый 09.02.2017, 23:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Сообщение от psiklop
Еще моя исправляла двойные фамилии типа карпова-карпенко
добавил, смотрите код выше
Ответить с цитированием
  #19 (permalink)  
Старый 03.04.2017, 22:08
Профессор
Отправить личное сообщение для psiklop Посмотреть профиль Найти все сообщения от psiklop
 
Регистрация: 04.03.2015
Сообщений: 163

еще похожая функция для email, но я ее использую только как рекомендацию пользователю, дабы не было ошибок

function fixemail(email) {
var spisokmail = ["mail.ru","yandex.ru","gmail.com","rambler.ru","yahoo.com","qip.ru","outlook.com","hotmail.com","list.ru","inbox.ru","bk.ru","ya.ru","fastmail.com","icloud.com"];
var max = 0;
var fixemail, c, temp;
var domen = email.substr(email.indexOf("@")+1).toLowerCase();
if (spisokmail.indexOf(domen) == -1) {
for (var i = 0; i < spisokmail.length; i++) {
c = 0;
temp = spisokmail[i];
for (var i2 = 0; i2 < domen.length; i2++) {if (domen[i2] == ".") continue; if (temp.indexOf(domen[i2]) != -1) c++;}
if (((spisokmail[i].length-4)<c)&&(Math.abs(domen.length - spisokmail[i].length) < 2)) {
if ((c > max) || ((fixemail) && (c == max) && (fixemail.length > temp.length))) {fixemail = spisokmail[i]; max = c;}}}
if (fixemail) {return email.substr(0, email.indexOf("@")+1)+fixemail;}}
return email;}

alert(fixemail("ivan@mail.ru"));
alert(fixemail("ivan@mail.com"));
alert(fixemail("ivan@jmail.com"));
alert(fixemail("ivan@icloud.kom"));
alert(fixemail("ivan@yndeks.ru"));
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нормализация DOM namreg Events/DOM/Window 12 10.09.2014 14:31
Помогите в написать короткий скрипт для AdobeAcrobat XI. BSI Общие вопросы Javascript 1 13.08.2013 21:24