Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.08.2018, 17:14
Новичок на форуме
Отправить личное сообщение для user7143 Посмотреть профиль Найти все сообщения от user7143
 
Регистрация: 25.01.2018
Сообщений: 9

Регистронезависимое удаление повторных вхождений подстрок из строк
Добрый день!

Использую такой скрипт для удаления повторяющихся слов в строках, например из строки "лук чеснок лук редис" удаляю повторное вхождение "лук":

var string = "лук чеснок лук редис";
var uniqueList=string.split(' ').filter(function(allItems,i,a){return i==a.indexOf(allItems);}).join(' ');
$('#output').append(uniqueList).append('<br />');


подскажите, пожалуйста, как сделать поиск повторов регистронезависимым, т.е. чтобы из строки "лук чеснок ЛуК редис" подстрока "ЛуК" тоже была бы удалена?

Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 22.08.2018, 17:36
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Переведите входную строку в нижний регистр, коли остаться должен "лук".
Ответить с цитированием
  #3 (permalink)  
Старый 22.08.2018, 17:47
Новичок на форуме
Отправить личное сообщение для user7143 Посмотреть профиль Найти все сообщения от user7143
 
Регистрация: 25.01.2018
Сообщений: 9

Сообщение от laimas Посмотреть сообщение
Переведите входную строку в нижний регистр, коли остаться должен "лук".
не подходит, регистр во входных данных менять нельзя

могут быть разные комбинации регистров, но остаться должен только один(первый)
Ответить с цитированием
  #4 (permalink)  
Старый 22.08.2018, 17:55
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от user7143
регистр во входных данных менять нельзя
А вас кто-то заставляет это делать, что нельзя это сделать здесь - var uniqueList=string.split....?
Ответить с цитированием
  #5 (permalink)  
Старый 22.08.2018, 17:55
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

var uniqueList = string.replace(/\S+/g, (m,offset) => string.search( new RegExp(m,'i')) < offset ? '' : m);

первое что пришло на ум

Последний раз редактировалось j0hnik, 22.08.2018 в 17:58.
Ответить с цитированием
  #6 (permalink)  
Старый 22.08.2018, 18:24
Новичок на форуме
Отправить личное сообщение для user7143 Посмотреть профиль Найти все сообщения от user7143
 
Регистрация: 25.01.2018
Сообщений: 9

Сообщение от j0hnik Посмотреть сообщение
var uniqueList = string.replace(/\S+/g, (m,offset) => string.search( new RegExp(m,'i')) < offset ? '' : m);

первое что пришло на ум

Спасибо большое!
Ответить с цитированием
  #7 (permalink)  
Старый 22.08.2018, 19:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

user7143,
порядок слов важен?
Ответить с цитированием
  #8 (permalink)  
Старый 22.08.2018, 19:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

user7143,
если порядок слов не важен, можно так
var string = "лук чеснок ЛуК редис";
 var reg = /(\S+)(?![\s\S]+?\1)/gi;
 string = string.match(reg).join(" ").toLowerCase();
 alert(string);
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое удаление строк таблицы Tankist Events/DOM/Window 16 03.07.2013 16:42
Удаление всех строк внутри tbody stos Общие вопросы Javascript 9 06.01.2012 17:57