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

Snowflake中JS UDF使用\p{Diacritic}正则表达式报错问题排查

问题:Snowflake JavaScript UDF中无法使用正则\p{Diacritic}移除重音符号

我在Snowflake的JavaScript UDF中使用以下代码可以成功移除文本里的重音符号:

const str = "Crème Brulée"
str.normalize("NFD").replace(/[\u0300-\u036f]/g, "")

但尝试使用JavaScript新特性的代码时却报错:

const str = "Crème Brulée"
str.normalize("NFD").replace(/\p{Diacritic}/gu, "")

报错信息:

SQL Error [100131] [P0000]: JavaScript compilation error: Uncaught SyntaxError: Invalid regular expression: /p{Diacritic}/:

请问问题原因是什么?是否是Snowflake使用的JavaScript版本不支持该新特性?


原因与解释

是的,问题核心就是Snowflake当前的JavaScript运行环境版本不支持ES2018引入的Unicode属性转义特性。

\p{Diacritic}属于Unicode属性转义语法,是ES2018才加入的正则特性,用来匹配所有带重音符号的字符或组合标记。而Snowflake的JS UDF目前使用的引擎版本尚未支持这一特性,所以会抛出正则语法错误。

你之前用的/[\u0300-\u036f]/g是基于Unicode字符范围的匹配,这个语法在ES5及更早版本就支持,属于兼容性更好的写法,所以可以正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 08:25:00