开发者社区 问答 正文

扫码输入字符串的一部分

扫码之后得到很长的字符串,希望截取前20个字符,所以写了一段js代码,但是扫码还是显示所有字符,只会在报错里提示前20个字符。 lQDPJxC2HI4GqwLNCozNBMiwd0nbvsrj1fMELBJQj8CtAA_1224_2700.jpg *前就是前20个字符

代码如下:

function validateRule(value) {
  if (value.length > 20) {
    return value.substring(0, 20);
  }
  return value.substring(0, 20);
 }

展开
收起
游客uf7gxzjgglpf4 2023-04-10 14:23:03 607 分享 版权
来自: 钉钉宜搭
3 条回答
写回答
取消 提交回答
  • 十年摸盘键,代码未曾试。 今日码示君,谁有上云事。

    我觉得你可以用宜搭SPLITPART函数来实现,宜搭SPLITPART函数的用法可以参考以下方法:

    (<字符串字段>,分隔字符,子串位置), 公式会将一个字符串按照“分隔字符”将其分为N个子串(N等于分隔字符的数量*2+1),子串位置从1(从左往右)开始计数,或者从-1(从右往左)开始计数

    示例:SPLITPART(<字段1>,A,2) 返回值为"BCD";字段1的值为"ABCDABHABC";子串位置填写-5时,也可以取到"BCD"。

    2023-04-10 20:53:40
    赞同 1 展开评论
  • 若回答对您有帮助,记得点下赞同哦 ~

    单行文本不是有扫码成功回调吗,直接写在回调函数中就行了。 image.png

    2023-04-10 15:24:48
    赞同 展开评论
  • 发表文章、提出问题、分享经验、结交志同道合的朋友

    你好,代码写的有问题,return 语句放的地方不对,所以无论传入的字符串长度是否超过 20,都会返回前 20 个字符。

    image.png

    修改如下:

    function validateRule(value) {
      if (value.length > 20) {
        return value.substring(0, 20);
      }
      return value;
    }
    
    2023-04-10 15:09:55
    赞同 展开评论
问答分类:
问答地址:
关联地址: