wxs奇怪的bug 在开发版本 和测试版上没问题 但是在正式版会出现问题
发布于 6 年前 作者 kfang 8692 次浏览 来自 问答
  • 当前 Bug 的表现(可附上截图)

正式环境 一个转化金额的过滤器 竟然无效  但是在测试环境 在开发环境 以及真机调试都是没有问题的 能够正常显示金额 但是正式上线 这里却显示不了了

这里面其实我已经填写了一个数值 在填写数字之后 会把数字按照三位一个,号切割  当输入框失去焦点后  过滤器所在的div 层显示出来  但是你看到确实一个空白的  这是在正式发布的版本上

  • 预期表现
  • 复现路径
  • 提供一个最简复现 Demo

需要对数字进行金钱格式转化   例如: 328562312.00 元 过滤成  328,562,312.00元

创建 numFr.wxs 过滤器

var numFr = {
  money: function (val) {
      var left = val.split('.')[0], right = '';
    right = val.indexOf('.') != -1 ? (val.toString().split(".")[1].length == 2 ? val.slice(val.indexOf('.')) : (val.toString().split(".")[1].length == 1 ? val.slice(val.indexOf('.')) + '0' : val.slice(val.indexOf('.')) + '00')):'.00'
      var regexp = getRegExp('(\d{1,3})', 'g');
      var temp = left.split('').reverse().join('').match(regexp);
      var st = (val < 0 ? "-" : "") + temp.join(',').split('').reverse().join('') + right;
      console.log(val)
      return st
  }
}
module.exports = {
  money: numFr.money
}

在  index.wxml 中 使用

<wxs module="numFr" src="../../filter/numFr.wxs"></wxs>
<label>金额</label>
<div class='moneyformat' wx:if="{{ismoney && mount!=''}}" bindtap='tabpanel'>{{numFr.money(mount)}}</div>
<span class="alerticon">元</span>
<input type='text' value='{{mount}}' name='amountmoney' bindblur="tabformat" focus="{{pricefocus}}" bindinput="bindprice"  hidden="{{ismoney}}"/>

JS 里面就不写了  但是操作是 输入金额数字后  输入框失去焦点 然后 div (class为 moneyformat的)里 显示 过滤转化后的金额

1 回复

同样的问题,wxs处理格式化字符串在开发版里有一定几率会导致返回结果为空。同求官方解答

回到顶部