User defined functions js replace函数在Snowflake UDF中不起作用(但在js previewer中工作良好)

User defined functions js replace函数在Snowflake UDF中不起作用(但在js previewer中工作良好),user-defined-functions,snowflake-cloud-data-platform,User Defined Functions,Snowflake Cloud Data Platform,我正在尝试创建雪花UDF以删除数字字符串中的所有非数字,如下所示: create or replace function fnValidAusMobile(STRIN string) returns string language javascript strict as ' var strIn = STRIN.replace(/\D/g,"") return strIn ' ; 但是,当我测试它时,我可以看到正则表达式不起作用,因为下

我正在尝试创建雪花UDF以删除数字字符串中的所有非数字,如下所示:

create or replace function fnValidAusMobile(STRIN string)
  returns string
  language javascript
  strict
  as
  '
  var strIn = STRIN.replace(/\D/g,"") 
  return strIn
  '
  ;
但是,当我测试它时,我可以看到正则表达式不起作用,因为下面返回的是:“+61 401 111-111”

SELECT fnValidAusMobile('+61 401 111-111')
奇怪的是,当我使用js预览器时,正则表达式工作得很好,所以我很困惑

有什么线索吗?在雪花UDF中使用正则表达式时,是否有不同的规则/语法


TIA.

您能用双斜杠编写regexp吗

create or replace function fnValidAusMobile(STRIN string)
  returns string
  language javascript
  strict
  as
  '
  var strIn = STRIN.replace(/\\D/g,"") 
  return strIn
  '
  ;
  

你能用双斜杠写regexp吗

create or replace function fnValidAusMobile(STRIN string)
  returns string
  language javascript
  strict
  as
  '
  var strIn = STRIN.replace(/\\D/g,"") 
  return strIn
  '
  ;
  

问题在于逃跑。如果您将“单引号”更改为“$$”双美元符号,它应该可以正常工作

create or replace function fnValidAusMobile(STRIN string)
  returns string
  language javascript
  strict
  as
  $$
  var strIn = STRIN.replace(/\D/g,"") 
  return strIn
  $$
  ;

问题在于逃跑。如果您将“单引号”更改为“$$”双美元符号,它应该可以正常工作

create or replace function fnValidAusMobile(STRIN string)
  returns string
  language javascript
  strict
  as
  $$
  var strIn = STRIN.replace(/\D/g,"") 
  return strIn
  $$
  ;

谢谢,$$成功了-非常感谢!考虑到$$适用于其中的所有内容,而不是需要对每个正则表达式进行双斜杠,我认为这种方法是最简单的,对吗?我想是的。谢谢,$$成功了-非常感谢!我认为这种方法最简单,因为$$适用于其中的所有内容,而不是需要对每个正则表达式进行双斜杠。我想是的。非常感谢,这也很有效!干杯。同一个问题有两种不同的解决方案,酷:-非常感谢,这也有效!干杯。同一个问题有两种不同的解决方案,酷:-