我有几组字符串正在使用,除了一些符号外,我还删除了所有符号。一旦返回 promise ,我就必须用 %20 替换 (spaces)。我现在有一个解决方案(减去一个更容易理解的问题的 promise )
let ABC = "asvue ? ?. @@";
console.log(ABC
.replace(/[?]/g,'\?')
.replace(/[.]/g,'\.')
.replace(/[@]/g,'\@')
.replace(/[^a-zA-Z @.?]/g,'_')
.replace(/ /g,'%20'));
这给出了正确的结果 "asvue%20?%20?.%20@@"
但是否有更好或更 Eloquent 方法来解决这个问题?我也知道正则表达式不是必需的,但这只是我的一个老习惯。
最佳答案
正如@Bergi 所说,您应该使用 encodeURIComponent
,即“用代表字符的 UTF-8 编码的一个、两个、三个或四个转义序列替换某些字符的每个实例”。
let ABC = "asvue ? ?. @@";
console.log(encodeURIComponent(ABC)); // 'asvue%20%3F%20%3F.%20%40%40'
关于javascript - 在顺序很重要的 javascript 中,是否有更 Eloquent 方法来编写字符串和符号替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57780342/