正则表达式支持哪些脚本名称?使用Script=Hans为何报错?
正则表达式中合法的Unicode脚本名称
在ECMAScript正则里,用\p{Script=...}(或缩写\p{sc=...})匹配Unicode脚本时,合法名称是ISO 15924定义的4字母代码,常用的包括:
- 汉字相关:
Han(统一汉字,含简繁体)、Hans(简体汉字)、Hant(繁体汉字) - 拉丁字母:
Latn - 西里尔字母:
Cyrl - 阿拉伯字母:
Arab - 日文假名:
Kana - 韩文谚文:
Hang - 希腊字母:
Grek - 希伯来字母:
Hebr - 印度天城文:
Deva
你代码报错大概率是运行环境对完整写法支持不足,试试用缩写sc替代Script,兼容性更好,修正后的代码:
const s = "a人", r = /\p{sc=Hans}/u; console.log(s.match(r)); // 输出匹配结果:["人"]
所有合法脚本名称均对应ISO 15924的4字母代码,覆盖全球已知书写系统脚本。
内容的提问来源于stack exchange,提问作者kakakali
相关产品推荐
相关产品推荐

