微信小程序从入坑到放弃二十五:记一次在WXS中使用正则表达式的坑

  • Post author:
  • Post category:小程序


摘要:

WXS(WeiXin Script)是小程序的一套脚本语言,结合 WXML,可以构建出页面的结构。在此次开发中,由于接口返回数据不统一,所以要对某些字段进行过滤。但直接使用replace时竟然报错了,原来在WXS中要生成regexp对象需要使用getRegExp函数…



一、起因

其实不用说看官也能猜到,起因当然是公司的小程序又有了新的需求嘛!此次小程序的需求中有一个是关于

商品组件UI优化

的需求,优化规则如下:

优惠券:金额取整。不超过1元,则不显示;超过9999,则仅显示9999+

商品价格:当商品金额小于10000时,保留2位小数显示;大于等于10000元时,则显示为1.0万的格式,即保留1位小数

已售:当虚拟销小于10000件时,显示完全;当虚拟销量大于等于10000件,则显示为已售1.0万件的格式,即保留1位小数

佣金:当佣金小于10时,保留2位小数显示;大于等于10元时,保留1位有效数字;大于等于100时,保留为整数;大于等于1000时,显示为:赚¥999+



二、方案选择

考虑到现有项目的复杂程度,涉及修改的组件至有三个,分别是:

普通商品



秒杀商品



拼团商品

。如果在每个组件内的

js

中修改,肯定是不可取的,毕竟

js

中会有大量的逻辑运算。最后综合考虑后选择使用

WXS

,即:在创建一个后缀为

wxs

的文件,在里面封装一个函数,在需要修改的地方调用即可。



三、封装代码

创建组件等步骤这回就不多说了,直接写代码吧,然后再说坑的事情。



3.1、wxs中封装formatValue

核心代码:

/* 封装一个格式转换的方法 */
function formatValue(value, type) {
   
  var result = value
  switch (type) {
   
    case 'price': /* 普通价格 */
      /* 商品价格:当商品金额小于10000时,保留2位小数显示;大于等于10000元时,则显示为1.0万的格式,即保留1位小数 */
      result = Number(value)
      



版权声明:本文为yilingsj原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。