You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Regex的test方法验证输入文本时禁止字符串含方括号?

解决正则验证禁止方括号的问题

你的问题出在原正则的字符范围定义上:A-zA-z这个写法包含了[、]等非字母字符(ASCII码中,[、]刚好落在大写A到小写z的区间内),所以包含方括号的字符串才会通过验证。下面是两种修改方案:

方案一:修正允许的字符范围(推荐)

把正则里的A-zA-z改成A-Za-z(或者利用i忽略大小写的标志,简化为a-z),这样就只允许大小写字母、空格、点和横杠,彻底排除方括号。修改后的正则和函数如下:

function validateName(name){
    var nameRegex = /^[a-z\s][a-z\s.-]{1,64}$/i;
    console.log('##########Checking validation.........');
    return nameRegex.test(name);
}

方案二:添加负向前瞻明确禁止方括号

如果需要更明确地确保字符串中不存在方括号(比如后续调整字符集时避免遗漏),可以在正则开头添加负向前瞻(?!.*[\[\]]),用来提前检查整个字符串不包含[或]:

function validateName(name){
    var nameRegex = /^(?!.*[\[\]])[a-z\s][a-z\s.-]{1,64}$/i;
    console.log('##########Checking validation.........');
    return nameRegex.test(name);
}

两种方案都能实现禁止包含方括号的字符串通过验证,方案一更高效,因为直接从允许的字符集中排除了方括号。

内容的提问来源于stack exchange,提问作者success kwagala

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 15:10:22