清理字符串 javascript 函数
Clean string javascript function
这是我的真实场景
const cleanString=( string )=>{
let city = getAccentedCity(string);
if( city.indexOf('%20')<0 ) return city;
return city.replaceAll('%20', ' ');
}
我现在必须添加另一种情况,当城市包含字符串 "%c3%9f"
并且我想将其替换为 's'
如何将它添加到我当前的函数中?
如果您不想重写代码,只需添加更多测试
const cleanString= string => {
let city = getAccentedCity(string);
if (city.toLowerCase().indexOf('%c3%9f') >= 0 ) return city.replaceAll('%c3%9f', 's');
if (city.indexOf('%20') < 0) return city;
return city.replaceAll('%20', ' ');
}
首先你应该知道IE不支持String.replaceAll()
功能。
如果您对它没问题并且我假设您已经在使用它,那么我会创建一个对数组,您可以将其传播到 replaceAll
函数中。
像这样:
const replaceMap = [
['%20', ' '],
['%c3%9f', 's'],
];
const cleanString = (string) => {
let city = getAccentedCity(string);
replaceMap.forEach(pair => city = city.replaceAll(...pair));
return city;
}
这是我的真实场景
const cleanString=( string )=>{
let city = getAccentedCity(string);
if( city.indexOf('%20')<0 ) return city;
return city.replaceAll('%20', ' ');
}
我现在必须添加另一种情况,当城市包含字符串 "%c3%9f"
并且我想将其替换为 's'
如何将它添加到我当前的函数中?
如果您不想重写代码,只需添加更多测试
const cleanString= string => {
let city = getAccentedCity(string);
if (city.toLowerCase().indexOf('%c3%9f') >= 0 ) return city.replaceAll('%c3%9f', 's');
if (city.indexOf('%20') < 0) return city;
return city.replaceAll('%20', ' ');
}
首先你应该知道IE不支持String.replaceAll()
功能。
如果您对它没问题并且我假设您已经在使用它,那么我会创建一个对数组,您可以将其传播到 replaceAll
函数中。
像这样:
const replaceMap = [
['%20', ' '],
['%c3%9f', 's'],
];
const cleanString = (string) => {
let city = getAccentedCity(string);
replaceMap.forEach(pair => city = city.replaceAll(...pair));
return city;
}