Помогите правильно написать функцию.
Мне надо нужно из строки удалить:
- Удалить пробелы за и после запятых (,)
- Удалить пробелы за и после прямого слеша (|)
- Повторяющиеся двойные запятые (,,)
- Повторяющиеся двойные символы слеша (||)
- Удалить запятую перед слешем (,|)
- Удалить слеши, пробелы или запятые в конце строки
- Ну и все лишние пробелы
на писал функцию по событию:
$("#ID").on('blur', function(){
var str = $(this).val();
str = str.replace(/\s+/g, ' ').trim();
str = str.replace(/\,,+/g, ',').trim();
str = str.replace(/\,+/g, ',').trim();
str = str.replace(/\s\,+/g, ',').trim();
str = str.replace(/\,\s+/g, ',').trim();
str = str.replace(/\s\|+/g, ',').trim();
str = str.replace(/\|\s+/g, '|').trim();
str = str.replace(/\|\s+/g, '|').trim();
str = str.replace(/\|\|+/g, '|').trim();
str = str.replace(/\,\|+/g, '|').trim();
str = str.replace(/,\s*$/, '');
str = str.replace(/\|*$/, '');
$(this).val(str.trim());
});
Вроде работает, но мне кажется это какой то бред))) в регулярках не разбираюсь особо((
Подскажите можно ли как то компактнее код сделать или может в JQuery какие то способы есть для этого более удобные.
То что нужно на примере
мне из этого:
слово слово, слово, слово слово|слово , ,слово слово ,слово ,|слово ,слово ,слово слово ,слово |
Нужно получить это:
слово слово,слово,слово слово|слово,слово слово,слово|слово,слово,сло во слово,слово