Dmitry86 Опубликовано 6 января, 2017 Жалоба Поделиться Опубликовано 6 января, 2017 (изменено) Народ, прошу помощи. На странице товара в админке есть код, который транслитит название товара сразу в адрес function generate_url() { url = $('input[name="name"]').val(); url = url.replace(/[\s]+/gi, '-'); url = translit(url); url = url.replace(/[^0-9a-z_\-]+/gi, '').toLowerCase(); return url; } function translit(str) { var ru=("А-а-Б-б-В-в-Ґ-ґ-Г-г-Д-д-Е-е-Ё-ё-Є-є-Ж-ж-З-з-И-и-І-і-Ї-ї-Й-й-К-к-Л-л-М-м-Н-н-О-о-П-п-Р-р-С-с-Т-т-У-у-Ф-ф-Х-х-Ц-ц-Ч-ч-Ш-ш-Щ-щ-Ъ-ъ-Ы-ы-Ь-ь-Э-э-Ю-ю-Я-я").split("-") var en=("A-a-B-b-V-v-G-g-G-g-D-d-E-e-E-e-E-e-ZH-zh-Z-z-I-i-I-i-I-i-J-j-K-k-L-l-M-m-N-n-O-o-P-p-R-r-S-s-T-t-U-u-F-f-H-h-TS-ts-CH-ch-SH-sh-SCH-sch-'-'-Y-y-'-'-E-e-YU-yu-YA-ya").split("-") var res = ''; for(var i=0, l=str.length; i<l; i++) { var s = str.charAt(i), n = ru.indexOf(s); if(n >= 0) { res += en[n]; } else { res += s; } } return res; } Помогите подправить, чтобы символы "." и "/" тоже добавлялись как "-". Сейчас они просто удаляются. Заранее благодарю! Изменено 6 января, 2017 пользователем Dmitry86 Цитата Ссылка на сообщение Поделиться на другие сайты
ahmed Опубликовано 6 января, 2017 Жалоба Поделиться Опубликовано 6 января, 2017 url = url.replace(/[^0-9a-z_\-\.\/]+/gi, '').toLowerCase(); Но если Вы будете просто оставлять в адресе "/", возможны проблемы... Цитата Ссылка на сообщение Поделиться на другие сайты
Dmitry86 Опубликовано 6 января, 2017 Автор Жалоба Поделиться Опубликовано 6 января, 2017 url = url.replace(/[^0-9a-z_\-\.\/]+/gi, '').toLowerCase(); Но если Вы будете просто оставлять в адресе "/", возможны проблемы... Спасибо!! А если я уже в адресе вставлю "/" (то есть вручную отредактирую) - то адрес уже не должен обрабатываться транслитератором вроде как.. Цитата Ссылка на сообщение Поделиться на другие сайты
Dmitry86 Опубликовано 6 января, 2017 Автор Жалоба Поделиться Опубликовано 6 января, 2017 url = url.replace(/[^0-9a-z_\-\.\/]+/gi, '').toLowerCase(); Но если Вы будете просто оставлять в адресе "/", возможны проблемы... И еще момент: url = url.replace(/[^0-9a-z_\-\.\/]+/gi, '').toLowerCase(); такая регулярка она просто пропускает в адрес "." и "/" а не заменяет их на "-" Цитата Ссылка на сообщение Поделиться на другие сайты
ahmed Опубликовано 6 января, 2017 Жалоба Поделиться Опубликовано 6 января, 2017 Тогда такurl = url.replace(/[\s\.\/]+/gi, '-'); Цитата Ссылка на сообщение Поделиться на другие сайты
Dmitry86 Опубликовано 6 января, 2017 Автор Жалоба Поделиться Опубликовано 6 января, 2017 Тогда такurl = url.replace(/[\s\.\/]+/gi, '-');Отлично! То что надо, спасибо! Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.