JS中PGP公钥字符串的精准空格替换需求及问题
JavaScript处理PGP公钥字符串格式的正确方案
直接用分步正则替换即可实现需求,既保留标记内部空格,又按规则替换其他空格:
var generated_pubkey = "-----BEGIN PGP PUBLIC KEY BLOCK----- xjMEY17rXBY86d3b e2e70cf35bc6b9490 0a0e76a27a9fc15e769 d674e3a9ce7d6bad5== =G4p6 -----END PGP PUBLIC KEY BLOCK----- "; let formattedPubkey = generated_pubkey // 替换BEGIN标记后的首个空格为\n\n .replace(/(-----BEGIN PGP PUBLIC KEY BLOCK-----) /, '$1\n\n') // 替换END标记前后的空格为\n,保留标记内部空格 .replace(/ (-----END PGP PUBLIC KEY BLOCK-----) /, '\n$1\n') // 替换密钥内容里的所有空格为单个\n .replaceAll(' ', '\n'); console.log(formattedPubkey);
步骤说明:
- 处理BEGIN标记后的空格:用正则捕获完整的BEGIN标记,仅替换标记后的第一个空格为
\n\n,完全保留标记内部的空格(比如BEGIN与PGP之间的空格)。 - 处理END标记前后的空格:捕获完整的END标记,将其前后的空格分别替换为
\n,同时处理了字符串末尾的空格。 - 处理密钥内容空格:将剩余所有空格(均为密钥分段的分隔空格)替换为单个
\n,完成格式统一。
内容的提问来源于stack exchange,提问作者ETHERC20
相关产品推荐
相关产品推荐

