Убрать пробелы в url

103
03 июля 2021, 22:00

Ссылка на пост формируется из указанного пользователем заголовка. Например заголовок "Привет мир" выдасть url /post/privet-mir , но если написать "При вет" (после "при" два пробела), тогда ссылка будет /post/pri%C2%A0-vet и конечно же эта ссылка битая и пост не отображается.

Метод который сохраняет пост:

editor.save().then((outputData) => {
                    let postParams = {};
                    //postParams.name = $("#name").text();
                    postParams.name = $.trim($("#name").text())
                    postParams.add = $("#add").val();
                    postParams.access_id = $("#access_id").val();
                    postParams.price = $("#price").val();
                    postParams.tag = $("#tag").val();
                    postParams.group_id = $("#group_id").val();
                    postParams.repost_id = <?php echo $_GET['repost_id'] ? $_GET['repost_id'] : 0; ?>;
                    postParams.content = outputData;
                    $.ajax({
                        type: "POST",
                        url: '/post/add',
                        data: postParams,
                        success: function (data) {
                            // window.location.replace("/post/" + data);
                            // window.location.replace("/post/" + encodeURIComponent(data));
                            window.location.replace(encodeURI("/post/" + data));
                        }
                    });
                });

Поле что нам необходимо это поле name, как видно я делаю для него $.trim, но логично что он убирает двойные пробелы только в начале и конце ссылки. Спасибо.

Answer 1

Правильно понимаю что вам нужно любое количество пробелов заменить на - ? Если да, то примените к своему url replace с регулярным выражением

YOURURL.replace(/ /g, '-')
Answer 2

Можете воспользоваться методом str.replace:

$("#name").text().replace(/\s/g, '');
READ ALSO
написать в разных файлах js/html fancybox

написать в разных файлах js/html fancybox

Доброго времени сутокИмеется код например такой

70
Создать копию массива объектов с изменением названия поля

Создать копию массива объектов с изменением названия поля

Получаю с сервера массив объектов tempArrayПодскажите, как создать копию этого массива и переименовать поле name на title

93