Я уверен, что на этот вопрос уже был дан ответ, прежде чем вам следует заняться исследованиями, но есть вариант.
const urlEncode = (str) => {
return str.trim().replace(/\s/g, '%20');
}
редактировать: ааа, Готча пропустил, зацикливая часть
const urlEncode = (str) => {
str = str.trim();
let encodedStr = '';
let index = 0;
for (let i = 0; i < str.length; i++) {
if(str[i] === ' ') {
encodedStr += str.slice(index, i)+'%20';
index = i+1;
}
}
return encodedStr + str.split(' ').pop();
};
Мне все еще приходилось использовать сплит. Я буду продолжать думать.
Edit3: Понял!
const urlEncode = (str) => {
str = str.trim();
let encodedStr = '';
let index = 0;
for (let i = 0; i < str.length; i++) {
if(str[i] === ' ') {
encodedStr += str.slice(index, i)+'%20';
index = i+1;
}
}
return encodedStr + str.slice(index, str.length);
};
Если у вас есть какие-либо вопросы, не стесняйтесь спрашивать!