Есть 3 инпута. Первый - основной. В него вводится название, в остальные два это названием дублируется, но вырезаются с него ненужные символы. Код функции: [js]function getTag() { var descriptionObj = ge('description'); var tagObj = ge('tag'); var keywordsObj = ge('keywords'); var re1 = new RegExp('[ ]+', 'gi'); var re2 = new RegExp('[^a-z0-9_\-а-я]+', 'i'); var re3 = new RegExp('[_]+', 'gi'); var desObj = descriptionObj.value.replace(re1, '_'); desObj = desObj.replace(re2, ''); var end = desObj.toLowerCase(); tagObj.value = end; keywordsObj.value = end.replace(re3, ', '); }[/js] То есть: Поле 1 - текст со всеми знаками. Поле 2 - как видно с регулярки - только a-z0-9_\-а-я, остальное вырезается. Поле 3 - только a-z0-9_\-а-я, только разделитель это запятая. Проблема - функция пропускает символы |, ~, №.
это найдет все строки с одним или несколькими пробелами одна или несколько не цифр не маленькая буква и не дефис: ~!@#$%^&*(){}[]., и все в этом духе, а еше A-Z А-Я одно или несколько нижних подчеркиваний
Padaboo И? Сначала пробелы удаляю, оставляю максимум один. Потом вырезаю все символы кроме [^a-z0-9_\-а-я]+. Для третего инпута меняю нижнее подчеркивание на запятую. Чего не вырезает |, ~, №
апельсинчик, тут палка лишняя, ты в промежуток положил с _ до "а", ну туда и попадают твои спецсимволы, сотри ее и должно похадь имхэ
Padaboo если хочется получить палку в строке - экранируем через \\, а не \ ну либо в исходном можно еще палку добавить и должно работать имхо
Херня какаято получается. Если набирать много символов типа )%;№+:%№/;№_%* такого, то она потом любые начинает пропускать. Даже такое не спасает [^a-z0-9а-я]+