Greasy Fork is available in English.

WME Change RUS NameStreet

Замена ул на улица и т.д при вставке в поле ввода.

目前为 2015-05-21 提交的版本。查看 最新版本

// ==UserScript==
// @name         WME Change RUS NameStreet
// @version      0.9.2
// @description  Замена ул на улица и т.д при вставке в поле ввода.
// @author       ixxvivxxi
// @include      https://www.waze.com/editor/*
// @include      https://www.waze.com/*/editor/*
// @include      https://editor-beta.waze.com/editor/*
// @include      https://editor-beta.waze.com/*/editor/*
// @grant        none
// @namespace    https://greasyfork.org/scripts/8903-WME-rus-name-street
// ==/UserScript==

function replace_status(streetname) {
  streetname = streetname.replace('ул.', 'улица')
                .replace(/^ул[ ]/, 'улица ') 
                .replace(/[ ]ул$/, ' улица') 
                .replace('пер.', 'переулок')
                .replace(/^пер[ ]/, 'переулок ')
                .replace(/[ ]пер$/, ' переулок')
                .replace('просп.', 'проспект')
                .replace(/^просп[ ]/, 'проспект ')
                .replace(/[ ]просп$/, ' проспект') 
                .replace('пр-т.', 'проспект')
                .replace(/^пр-т[ ]/, 'проспект ')
                .replace(/[ ]пр-т$/, ' проспект')
                .replace('пр-д.', 'проезд')
                .replace(/^пр-д[ ]/, 'проезд ')
                .replace(/[ ]пр-д$/, ' проезд')
                .replace('пл.', 'площадь')
                .replace(/^пл[ ]/, 'площадь ')
                .replace(/[ ]пл$/, ' площадь')
                .replace('ш.', 'шоссе');  
  //streetname = streetname.trim(); 
  
    
  streetname = streetname.replace(/^улица(?=[0-9а-яА-Я])/, 'улица ')
                .replace(/^переулок(?=[0-9а-яА-Я])/, 'переулок ')
                .replace(/^проспект(?=[0-9а-яА-Я])/, 'проспект ')  
                .replace(/^проезд(?=[0-9а-яА-Я])/, 'проезд ')
                .replace(/^площадь(?=[0-9а-яА-Я])/, 'площадь ')
                .replace(/^шоссе(?=[0-9а-яА-Я])/, 'шоссе ')
                .replace(/(?=[0-9а-яА-Я])улица$/, ' улица')
                .replace(/(?=[0-9а-яА-Я])переулок$/, ' переулок')
                .replace(/(?=[0-9а-яА-Я])проспект$/, ' проспект')  
                .replace(/(?=[0-9а-яА-Я])проезд$/, ' проезд')
                .replace(/(?=[0-9а-яА-Я])площадь$/, ' площадь')
                .replace(/(?=[0-9а-яА-Я])шоссе$/, ' шоссе');     
  streetname = streetname.replace(/^[ ](?=[0-9а-яА-Я])/, '').replace(/[ ]+/g, ' ');
 
  streetname = streetname.replace('Я.Коласа', 'Якуба Коласа')
                .replace('Я. Коласа', 'Якуба Коласа')
                .replace('Я.Купалы', 'Янки Купалы')
                .replace('Я. Купалы', 'Янки Купалы')
                .replace('Ф.Скорины', 'Франциска Скорины')
                .replace('Ф. Скорины', 'Франциска Скорины')
                .replace('Б.Хмельницкого', 'Богдана Хмельницкого')
                .replace('Б. Хмельницкого', 'Богдана Хмельницкого'); 
  
    
  return streetname;    
}

function correct_adjectives(streetname) {
  $('.a_replace_name_street').remove();
  var lastchars = streetname.substring(streetname.length-2);
      
  if (lastchars == 'ая' || lastchars == 'ый'|| lastchars == 'ий' || lastchars == 'яя') {
    var arr_words = streetname.split(" ");
      if (arr_words.length > 1) {
        var firstword = arr_words[0];
    
        streetname = streetname.replace(firstword + ' ', '');
        streetname = streetname + ' ' + firstword;
        $('#sidebar .primary-street').append('<div class="a_replace_name_street" style="color:red;font-weight:bold">Возможно: <a id="a_replace_name_street" href="#" streetname="' + streetname + '">' + streetname + '</a></div>');
      }
   }
}

$('#sidebar').on('input', '.streetName', function() {
  var newstr = replace_status($(this).val());
  if ($(this).val() != newstr) {
     $(this).val(newstr); 
  }
  
  correct_adjectives($(this).val());
});

$('#sidebar').on('change', '.streetName', function() {
  var newstr = replace_status($(this).val());
  if ($(this).val() != newstr) {
     $(this).val(newstr); 
  }
  correct_adjectives($(this).val());
});

$('#sidebar').on('focus', '.streetName', function() {
  var newstr = replace_status($(this).val());
  if ($(this).val() != newstr) {
     $(this).val(newstr); 
  }
  correct_adjectives($(this).val());
});

$('#sidebar').on('focusout', '.streetName', function() {
  var newstr = $(this).val().trim();
  if ($(this).val() != newstr) {
     $(this).val(newstr); 
  }
  correct_adjectives($(this).val());
});


$('#sidebar').on('click', '#a_replace_name_street', function(event) {
   event.preventDefault();
   $('#sidebar .streetName').val($('#sidebar #a_replace_name_street').attr('streetname'));
   $('.a_replace_name_street').remove();
});