Javascript 遍历字符串并替换未按预期工作的空格
因此,我试图返回每个空格之间带有“%20”的字符串,除非在开头或结尾有空格,否则它将被删除(例如“Lighthouse Labs”变为“Lighthouse%20Labs”)。但是出于某种原因,我的第一个if语句不起作用,如果在开头或结尾有空格,它会将if语句中的代码应用于所有空格,我不知道为什么。我一定是误解了什么。感谢您的帮助Javascript 遍历字符串并替换未按预期工作的空格,javascript,string,loops,Javascript,String,Loops,因此,我试图返回每个空格之间带有“%20”的字符串,除非在开头或结尾有空格,否则它将被删除(例如“Lighthouse Labs”变为“Lighthouse%20Labs”)。但是出于某种原因,我的第一个if语句不起作用,如果在开头或结尾有空格,它会将if语句中的代码应用于所有空格,我不知道为什么。我一定是误解了什么。感谢您的帮助 const urlEncode = function (text) { for (let i = 0; i < text.length; i++) {
const urlEncode = function (text) {
for (let i = 0; i < text.length; i++) {
if (text.charAt(0) === " " || text.charAt(text.length - 1) === " ") {
return text.split(" ").join("");
} else {
return text.split(" ").join("%20")
}
}
return text;
};
console.log(urlEncode("Lighthouse Labs")); // Lighthouse%20Labs
console.log(urlEncode(" Lighthouse Labs ")); // LighthouseLabs
console.log(urlEncode("blue is greener than purple for sure")); //blue%20is%20greener%20than%20purple%20for%20sure
console.log(urlEncode(" blue is greener than purple for sure")); //blueisgreenerthanpurpleforsure
console.log(urlEncode("blue is greener than purple for sure "));
//blueisgreenerthanpurpleforsure
const urlEncode=函数(文本){
for(设i=0;i
使用此功能:
const urlEncode = function (text){
return text.trim().replace(/\s+/g, '%20')
}
函数将删除文本开头和结尾的空格。replace方法的第一个参数是一个正则表达式,表示每个空格都被第二个参数替换,
+
量词意味着如果有连续的空格,则仅用一个“%20”替换所有空格。可以使用trim和replace:
const urlEncode = function (text) {
const regex = / /g
return text.trim().replace(regex, '%20');
}
我相信你可以使用trim(),你为什么不直接用
.trim().replace(“,“%20”)?为什么不直接使用.trim()
然后再使用.urlEncode()
呢,或者干脆用.replace()
?你在这里重新发明轮子。没有理由,只是对编码非常陌生,认为这似乎是一个不错的解决方案。因为你是编码新手,我建议在开始使用字符串编码之前先探索String
API,以熟悉可用的方法。只需通读一下,就可以开始填满你的工具箱。