首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:未能识别属性“`Script`”的值‘for’

错误:未能识别属性“`Script`”的值‘for’
EN

Stack Overflow用户
提问于 2022-07-17 14:20:32
回答 1查看 57关注 0票数 0

我正在尝试从字符串中过滤汉字。

根据这个答案的说法,我可以:

代码语言:javascript
复制
const nonChinese = /[^\p{Script=Han}]/gimu;
const text = "asdP asfasf这些年asfagg 我开源的 几个小项目sad asd";
console.log(text.replace(nonChinese, ""));

预期产出:

代码语言:javascript
复制
"这些年我开源的几个小项目"

这可以在js:js小提琴操场这样的在线编译器中工作,但是它不适用于我的NextJs (带有类型脚本)应用程序,它会给我一个编译错误:

代码语言:javascript
复制
Error: Failed to recognize value `Han` for property `Script`.

引发此错误的原因如下:

代码语言:javascript
复制
index.js?46cb:365 Uncaught     at getUnicodePropertyValueSet (file://D:\code\personal-website\node_modules\next\dist\compiled\babel-packages\packages-bundle.js:315:46438)
    at getUnicodePropertyEscapeSet (file://D:\code\personal-website\node_modules\next\dist\compiled\babel-packages\packages-bundle.js:315:46885)
    at processCharacterClass (file://D:\code\personal-website\node_modules\next\dist\compiled\babel-packages\packages-bundle.js:315:47864)
    at processTerm (file://D:\code\personal-website\node_modules\next\dist\compiled\babel-packages\packages-bundle.js:315:48494)
    at rewritePattern (file://D:\code\personal-website\node_modules\next\dist\compiled\babel-packages\packages-bundle.js:315:50577)
    at PluginPass.RegExpLiteral (file://D:\code\personal-website\node_modules\next\dist\compiled\babel-packages\packages-bundle.js:74:17966)
    at i (file://D:\code\personal-website\node_modules\next\dist\compiled\babel\bundle.js:1890:373015)
    at NodePath._call (file://D:\code\personal-website\node_modules\next\dist\compiled\babel\bundle.js:1890:292626)
    at NodePath.call (file://D:\code\personal-website\node_modules\next\dist\compiled\babel\bundle.js:1890:292450)
    at NodePath.visit (file://D:\code\personal-website\node_modules\next\dist\compiled\babel\bundle.js:1890:293401)
    at processResult (file://D:\code\personal-website\node_modules\next\dist\compiled\webpack\bundle5.js:49593:19)
    at <unknown> (file://D:\code\personal-website\node_modules\next\dist\compiled\webpack\bundle5.js:49695:5)
    at <unknown> (file://D:\code\personal-website\node_modules\next\dist\compiled\webpack\bundle5.js:140993:11)
    at <unknown> (file://D:\code\personal-website\node_modules\next\dist\compiled\webpack\bundle5.js:140845:18)
    at context.callback (file://D:\code\personal-website\node_modules\next\dist\compiled\webpack\bundle5.js:140718:13)
    at <unknown> (file://D:\code\personal-website\node_modules\next\dist\build\babel\loader\index.js:33:61)

我能知道为什么会发生这种事,以及如何解决吗?

EN

回答 1

Stack Overflow用户

发布于 2022-07-18 00:07:41

嗯,不知道为什么,但在我把正则表达式改为:

代码语言:javascript
复制
const nonChinese = /[\P{Script=Han}]/gim

它只是起作用了,如果有人仍然面临这个问题,而你只有ASCII和汉字,你可以使用一个替代方案,过滤掉所有的ASCII字符。

代码语言:javascript
复制
const allAscii = /[\x00-\x7F]/gim
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73012580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档