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

TypeScript正则报错Category shorthand not allowed的原因及解决方法

报错原因

ECMAScript 正则规范不支持 \pL、\pM、\pN 这类单字母的 Unicode 类别简写形式,必须使用完整的属性名才可以配合u标志完成 Unicode 属性匹配,你使用的简写语法属于其他正则方言的特性,不被 TypeScript 对应的 JS 运行环境支持。

修复方案

将正则中的简写 Unicode 属性替换为标准全称即可,原有匹配逻辑完全不变:

const pass = /^[\p{Letter}\p{Mark}\p{Number}_-]+$/u.test(control.value) || !control.value;
  • \p{Letter} 对应原 \pL,匹配所有语言的字母字符
  • \p{Mark} 对应原 \pM,匹配所有变音标记类字符
  • \p{Number} 对应原 \pN,匹配所有语种的数字字符

如果你的运行环境版本过低不支持 Unicode 属性转义,可以将正则替换为等价的 ASCII 范围写法(仅支持英文、数字):

const pass = /^[a-zA-Z0-9_-]+$/.test(control.value) || !control.value;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:15:02