gpt4 book ai didi

JavaScript 正则表达式测试和替换

转载 作者:太空宇宙 更新时间:2023-11-04 16:05:44 24 4
gpt4 key购买 nike

我需要清理一些字符。我有一个可行的解决方案,但我想知道是否有更好的解决方案可能更快或更好,或者我是否应该以不同的方式处理这个问题?

function escapeStr(_str){
if (/\"|\'|\%/g.test(_str)) {
_str = _str.replace(/"/g, "%22");
_str = _str.replace(/'/g, "%27");
_str = _str.replace(/%/g, "%25");
}
return _str;
}

反之亦然:

function unescapeStr(_str){
if (/\%22|\%27|\%25/g.test(_str)) {
_str = _str.replace(/\%22/g, '"');
_str = _str.replace(/\%27/g, "'");
_str = _str.replace(/\%25/g, "%");
}
return _str;
}

最佳答案

您可以将这些字符与单个字符类正则表达式 /['"%]/g 匹配,并在回调内将每个匹配替换为相应的替换:

function myQuoteStr(_str) { 
return _str.replace(/["'%]/g, function($0) {
return $0 === '"' ? "%22" : $0 === "'" ? "%27" : "%25";
});
}
console.log(myQuoteStr("\"-'-%"));

function myUnQuoteStr(_str) {
return _str.replace(/%2[257](?!\d)/g, function($0) {
return $0 === '%22' ? '"' : $0 === "%27" ? "'" : "%";
});
}
console.log(myUnQuoteStr("%22-%27-%25"));

请注意,在 myUnQuoteStr 中,/%2[257](?!\d)/g 模式包含否定前瞻,以确保我们不会匹配 %255 字符串中的 %25

关于JavaScript 正则表达式测试和替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41903615/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com