@dgallyamshin

Как удалить определенные слова из строки, введенной пользователем?

Надо удалить определенные буквосочетания из строки, которую пользователь вводит в input. Я придумал это, но выглядит ужасно, как заменить?
streetIn = $("#streetInCalc").val().toLowerCase().replace('проспект', '').replace(' ', '').replace('улица', '').replace('ул.', '').replace('пр.', '').replace('пр-д', '').replace('проезд', '').replace('переулок', '').replace('пер-ок', '').replace('ш.', '').replace('шоссе', '').replace('бул.', '').replace('бульвар', '').replace('генерала', '').replace('ген.', '').replace('пр-т.', '').replace('просека', '').replace('марш.', '').replace('маршала', '')
  • Вопрос задан
  • 79 просмотров
Пригласить эксперта
Ответы на вопрос 2
Kozack
@Kozack Куратор тега JavaScript
Thinking about a11y
Комментировать
webdisigner
@webdisigner
var replaceList = ['проспект','улица','ул.','пр.','пр-д','проезд','переулок','пер-ок','ш.','шоссе','бул.','бульвар','генерала','ген.','пр-т.','просека','марш.','маршала']


String.prototype.replacer = function(list){

  let entityMap = {
    '&': '\\&&;',
    '<': '&lt;',
    '>': '&gt;',
    '"': '&quot;',
    "'": '&#39;',
    '/': '&#x2F;',
    '`': '&#x60;',
    '=': '&#x3D;',
    '.': '\\.',
    '-': '\\-'
  }
  
  list = list.join('|').replace(/[&<>"'`=\/\.\-]/g, e=>entityMap[e])
  
  return this.replace(new RegExp(list,'gi'),'').trim()
  
}

streetIn = $("#streetInCalc").val().replacer(replaceList)

console.log(streetIn)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы