Javascript中的等价正则表达式



我正在尝试验证AWS accessKey和secretKey。找到一篇AWS博客文章,其中建议使用正则表达式来验证accessKey和secretKeyhttps://blogs.aws.amazon.com/security/post/Tx1XG3FX6VMU6O5/A-safer-way-to-distribute-AWS-credentials-to-EC2

但是他们建议的正则表达式包括负向后看,我们知道java-script在正则表达式中不支持负向后看。所以谁能建议一个等效的JavaScript正则表达式?

AccessKey: (?<![A-Z0-9])[A-Z0-9]{20}(?![A-Z0-9])
This means find me 20-character, uppercase, alphanumeric strings that don’t have any uppercase, alphanumeric characters immediately before or after.
SecretKey: (?<![A-Za-z0-9/+=])[A-Za-z0-9/+=]{40}(?![A-Za-z0-9/+=]) 
This means find me 40-character, base-64 strings that don’t have any base 64 characters immediately before or after.

示例字符串:https://regex101.com/r/wn7t9D/3

任何帮助/建议都是非常感谢的。

谢谢罗马尼亚的

您可以使用字符串的开始和一个具有A-Z0-9范围的否定字符类的替代,而不是负向后看:

AccessKey :

(^|[^A-Z0-9])[A-Z0-9]{20}(?![A-Z0-9])
^^^^^^^^^^^^^

查看regex演示

SecretKey :

(^|[^A-Za-z0-9/+=])[A-Za-z0-9/+=]{40}(?![A-Za-z0-9/+=]) 
^^^^^^^^^^^^^^^^^^^

另一个正则表达式演示

最新更新