curriculum/challenges/english/blocks/daily-coding-challenges-javascript/68b06e589bf2273243814775.md
Given a string, return a URL-friendly version of the string using the following constraints:
%20.%20.%20.generateSlug("helloWorld") should return "helloworld".
assert.equal(generateSlug("helloWorld"), "helloworld");
generateSlug("hello world!") should return "hello%20world".
assert.equal(generateSlug("hello world!"), "hello%20world");
generateSlug(" hello-world ") should return "helloworld".
assert.equal(generateSlug(" hello-world "), "helloworld");
generateSlug("hello world") should return "hello%20world".
assert.equal(generateSlug("hello world"), "hello%20world");
generateSlug(" ?H^3-1*1]0! W[0%R#1]D ") should return "h3110%20w0r1d".
assert.equal(generateSlug(" ?H^3-1*1]0! W[0%R#1]D "), "h3110%20w0r1d");
function generateSlug(str) {
return str;
}
function generateSlug(str) {
let cleaned = str.replace(/[^a-zA-Z0-9 ]+/g, "");
cleaned = cleaned.replace(/\s+/g, " ").trim();
return cleaned.toLowerCase().replace(/ /g, "%20");
}