正则表达式字符类含重复字符的SonarQube问题修复求助
修复SonarQube正则重复字符问题的方案
你的正则/^[a-zA-Z0-9,-_]*$/触发SonarQube提示的核心原因是:字符类中存在重复定义的字符,且错误使用-导致范围覆盖了已明确指定的字符。具体问题点:
-,和-_的写法让正则引擎将-解析为范围符号,-_覆盖了a-zA-Z0-9的部分字符(ASCII 45到95包含数字、大写字母等),造成重复。-被重复包含在字符类中(一次通过范围,一次因写法失误重复)。
修正后的正则表达式(三种可选写法)
- 写法1:将
-放在字符类末尾(无需转义,最常用)var17regex = /^[a-zA-Z0-9,_-]*$/; - 写法2:将
-放在字符类开头var17regex = /^[-a-zA-Z0-9,_]*$/; - 写法3:转义
-(适合任意位置)var17regex = /^[a-zA-Z0-9,\-_]*$/;
说明
以上三种写法都明确指定了允许的字符:大小写字母、数字、逗号、连字符、下划线,同时避免了-被解析为范围符号,彻底消除了重复字符的问题,符合SonarQube的规则要求。
内容的提问来源于stack exchange,提问作者sfdcDev
相关产品推荐
相关产品推荐

