JavaScript正则表达式需求:仅允许开头含*,末尾4位禁*
符合要求的正则表达式实现
你需要调整正则规则,满足两个核心要求:
- 星号仅能出现在字符串开头(中间及其他位置不能有星号)
- 字符串末尾4位不能包含星号
同时整体仅允许字母、数字和星号(星号仅限开头)
最终的正则表达式为:
^[a-zA-Z0-9]+$|^\*+[a-zA-Z0-9]{4,}$
规则拆解说明
^[a-zA-Z0-9]+$:匹配完全由字母或数字组成的字符串,这类字符串没有星号,自然满足末尾无星号的要求,同时覆盖长度小于4的有效场景(比如test)。^\*+[a-zA-Z0-9]{4,}$:匹配开头有1个或多个星号,且后面跟着至少4个字母/数字的字符串。{4,}确保星号之后的内容足够长,使得整个字符串的最后4位都是字母/数字,不会包含开头的星号,同时限制星号只能出现在开头位置。
测试用例验证
逐个验证你给出的测试用例:
test:匹配第一个分支 → 有效test1234:匹配第一个分支 → 有效test@#_:包含非字母/数字/星号的字符 → 无效****1234:匹配第二个分支 → 有效*tes**1234:中间包含星号,不符合星号仅在开头的规则 → 无效test****:末尾4位是星号,不匹配任何分支 → 无效
内容的提问来源于stack exchange,提问作者Eternal Sunshine
相关产品推荐
相关产品推荐

