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

Javascript正则如何允许所有非英文字母、连字符、下划线并屏蔽其余字符

JavaScript 正则实现方案

符合需求的正则如下,支持所有语言的字母(包含带重音字符、中文)、连字符、下划线,禁止数字和特殊字符:

// 匹配规则:整个字符串仅允许 Unicode 字母、下划线、连字符,开启Unicode模式
const isValid = (str) => /^[\p{L}_-]+$/u.test(str);

测试结果

  • 允许匹配的用例返回true:ab_c、åb-ç、的å
  • 禁止匹配的用例返回false:å!_、å123、!_!

原代码错误说明

之前的写法存在两处核心问题:

  1. 错误使用反向字符集[^xxx],逻辑变成匹配「不在指定范围内的字符」,和需求相反
  2. 字符集内包含\u0000-\u007F全ASCII范围,反而把合法的英文大小写字母等字符排除,同时没有覆盖到非ASCII的多语言字母范围

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 16:36:03