收藏
回答

输入长度限制,能不能参考一下通用做法啊 英文字符和中文一样长这样合适吗?直接计算字节数不好吗?

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug input 微信iOS客户端 6.6.6 2.2.2

https://developers.weixin.qq.com/miniprogram/dev/component/input.html

中英文表达同样意思的字符长度本来就有很大区别,能不能按照最简单的字节长度来计算啊?如果不愿意的话,起码也应该给两个不同的长度控制变量吧? 哎你们 拜托

回答关注问题邀请回答
收藏

3 个回答

  • Aero
    Aero
    03-13

    bindInputUserMsg: function(e) {

    var countHanzi =0

    var mixLengthNow=0

    function replacer(match, offset, string) {

    if (match.match(/[^\x00-\xff]/)) { countHanzi++ }

    mixLengthNow = offset + countHanzi

    if (mixLengthNow < 14) { return match } //在这里[控制]输入字符混合长度,中文字符算2个英文算1个,如七个汉字=14个英文 设置14

    else { return '' }

    //console.log("--Inside--", match, offset, string, countHanzi, mixLengthNow)

    }

    var value = e.detail.value.replace(/./g, replacer)

    console.log("Input value: ", value, countHanzi)

    // 返回去尾后的字符串,光标在最后

    return value

    },


    03-13
    赞同 2
    回复
  • 一世倾心
    一世倾心
    03-11

    你说的是这个属性吗?

    03-11
    赞同 1
    回复 5
    • 一世倾心
      一世倾心
      03-11
      要是这个问题的话  你可以看看这个截图,自己试试去,是不是跟微信的这个一样的。   要是不是的话说明白点,是哪一个?
      03-11
      1
      回复
    • Aero
      Aero
      03-11回复一世倾心
      哦 不好意思我问题表述不够清楚,对的,是这个属性。看起来应该是一样的。但是我希望微信做得更符合输入内容表达意思的需要
      03-11
      回复
    • 一世倾心
      一世倾心
      03-11回复Aero
      9.9成的是没有希望,h5也是这样的,但是h5怎么实现你说的这个我就不太清楚了,经验有限
      03-11
      1
      回复
    • Aero
      Aero
      03-11回复一世倾心
      谢谢你的认真回复啊,像你这样讨论问题的人不多了。我找到解决办法了已经,就是一楼建议的那个思路,replace和slice一起截取好,再return回去,有点麻烦但是实现了
      03-11
      回复
    • 一世倾心
      一世倾心
      03-11回复Aero
      OK,应该是我原先做项目的不严谨吧,没有说过限制的问题。公司的思想不一样。等着用到的时候就有思路了^_^
      03-11
      1
      回复
  • xy
    xy
    03-11

    你可以在change事件里 自己做处理 没必要为一个脱节的需求 而改变符合大众的需求 这样不太现实

    03-11
    赞同
    回复 3
    • Aero
      Aero
      03-11
      谢谢你的建议,但是大众的最终需求是表达意思,不是为了输入而输入,所以不同语言应该区分对待,就算按照常理 也是按字节数的更常见。不同意你这个脱节的定义
      03-11
      回复
    • 同步
      同步
      星期二 14:02回复Aero
      还是比较期望长度控制,虽然也遇到了需要中英文字节长度区分的无奈需求
      星期二 14:02
      回复
    • Aero
      Aero
      星期二 21:29回复同步
      完全可以两种都提供
      星期二 21:29
      回复
登录 后发表内容
问题标签