uniapp 支付宝小程序 使用uni-forms 表单,正则表达式验证不生效问题

72 阅读1分钟

验证电话号码不通过 一开始博主使用的是 这个正则 pattern: /^(1[3-9]\d{9}|0\d{2,3}-?\d{7,8})$/,在失去焦点验证的时候 186****9715 这个号码都验证不通过 ,

查了一圈文档发现原因 :支付宝小程序不支持直接传递正则表达式对象,因此需要将正则表达式以字符串形式传递 ``

		tel: [{
		required: true,
		errorMessage: '联系方式不能为空'
		},
		{
		pattern: /^(1[3-9]\d{9}|0\d{2,3}-?\d{7,8})$/,
		errorMessage: '请输入有效的手机号码或座机号码',
		}
		],
		image_code: [{
		required: true,
		errorMessage: '图形验证码不能为空'
		},
		{
		pattern: /^[A-Za-z0-9]{4}$/i, // 添加 i 标志表示不区分大小写
		errorMessage: '图形验证码必须是4位字母或数字'
						}
					]
				}

正确写法将正则表达式改为字符串就能解决 如下 :

  tel: [
    {
      required: true,
      errorMessage: '联系方式不能为空'
    },
    {
      pattern: '^(1[3-9]\\d{9}|0\\d{2,3}-?\\d{7,8})$',
      errorMessage: '请输入有效的手机号码或座机号码'
    }
  ],
  image_code: [
    {
      required: true,
      errorMessage: '图形验证码不能为空'
    },
    {
      pattern: '^[A-Za-z0-9]{4}$',
      errorMessage: '图形验证码必须是4位字母或数字'
    }
  ]
}

dc2632c297e159e481013e7a96e8536f.png