收藏
回答

微信小程序 input组件 限制输入 最多10个英文或5个中文?

请问一下,微信小程序input组件怎么 限制输入 最多10个英文或5个中文

目前做法:但是setData不起作用 input框里面的值和打印出来的值不一样



getName (e) {
    let textLength = 0
    let name= ''
    let nameArr = e.detail.value.split("");
    nameArr.forEach((letter) => {
      textLength = textLength + this.validateTextLength(letter)
      if (textLength <= 5) {
        name= name+ letter
      }
    })

    this.setData({
      name: name
    })
        console.log(this.data.name);
  },
  validateTextLength (value) {
    // 中文、中文标点、全角字符按1长度,英文、英文符号、数字按0.5长度计算
    let cnReg = /([\u4e00-\u9fa5]|[\u3000-\u303F]|[\uFF00-\uFF60])/g;
    let mat = value.match(cnReg);
    let length = 0;


    if (mat) {
      length = (mat.length + (value.length - mat.length) * 0.5);
      return length;
    } else {
      return value.length * 0.5;
    }
  },
最后一次编辑于  2020-11-18
回答关注问题邀请回答
收藏

1 个回答

  • Rosa Champagne
    Rosa Champagne
    2020-11-18

    解决了

    在input组件上添加双向绑定即可

     model:value="{{name}}"
    
    2020-11-18
    有用
    回复
登录 后发表内容
问题标签