如何在es6中将正则表达式导出为const?

时间:2018-01-15 15:37:28

标签: javascript ecmascript-6

我有一个正则表达式,在许多类中重复使用。如果需要在将来改变,这是对DRY的侵犯和潜在的痛苦。因此我决定将它移到一个普通的js并导出它。以下是代码:

const CommonValues = {
  TEXT_FILTER_REGEX: /^[,.?!:"—]$/
};
export CommonValues;

导入CommonValues后,我这样使用它:

let result = CommonValues.TEXT_FILTER_REGEX.test('foo,bar'));

但无论我尝试什么,我都会在控制台中收到此错误:

未捕获错误:模块解析失败:'const'不能用作速记属性(5:2) 您可能需要适当的加载程序来处理此文件类型。

我也尝试以相同的方式导出整数和字符串,它们都没有任何问题。这让我想知道在出口时正则表达式是否以某种方式被区别对待?

这似乎奇迹般地固定了自己。我完全不知所措。我想这将是一个暂时的巴贝尔故障。

感谢您的任何建议。

1 个答案:

答案 0 :(得分:-1)

我通过以下方式开展工作。 我不确定您RegExp'/^[,.?!:"—]$/'的作用,但我尝试了digit RegEx =^[0-9]$并得到了预期的结果;

我得到的错误是关于string类型没有在TypeScript中的原型上定义test()。只有RegExp才有。

export const Constants = {
  TEXT_FILTER_REGEX:  new RegExp('^[,.?!:"—]$')
}

工作的掠夺者是here

测试可以完全相同的方式完成。您需要修剪/并使用

将其设为RegExp个对象
new RegExp('UrRegexHere')