我有一个验证器,可以在本地运行时正常工作:
`导出函数currencyAmountValidator(control: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);
返回通过了吗? null:{无效:true}; } `
它允许输入以下内容:100、100英镑,123.45英镑,1300英镑
但是,当我部署到服务器时,开始时不允许使用£符号,但允许使用$。为什么在本地和服务器上运行时,它的工作方式不同?
答案 0 :(得分: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编译成缩小文件)必须一直在搞砸£