0

我有一个在本地运行时可以正常工作的验证器:

`导出函数currencyAmountValidator(控件:AbstractControl){

var 已通过 = /^(\£)?([1-9]{1}[0-9]{0,2})(\,\d{3}) (.\d{2})?$| ^(\$)?([1-9]{1}[0-9]{0,2})(\d{3}) (.\d{2})?$|^(0)?( .\d{2})?$|^(\$0)?(.\d{2})?$|^(\$.)(\d{2})?$/gm.test(control.value );

退货通过了?空:{无效:真};} `

它允许以下条目:100、100 英镑、123.45 英镑、1,300 英镑

但是,当我部署到服务器时,它不允许在开始时使用 £ 符号,但允许使用 $。为什么在本地和服务器上运行时它的工作方式不同?

4

1 回答 1

0

我的解决方案是在正则表达式中使用 xA3 而不是 £,所以即使在部署到服务器之后,这个正则表达式也能满足我的要求:

/^(\xA3)?([1-9]{1}[0-9]{0,2})(\,\d{3}) (.\d{2})?$|^(\ xA3)?([1-9]{1}[0-9]{0,2})(\d{3}) (.\d{2})?$|^(0)?(.\d {2})?$|^(\xA30)?(.\d{2})?$|^(\xA3.)(\d{2})?$/gm

Webpack(将 Angular 编译成缩小文件)一定是搞砸了 £

于 2019-02-14T19:47:11.760 回答