uni微信小程序input框过滤中文字节以及规定以外的符号

2024-05-28 17:28

本文主要是介绍uni微信小程序input框过滤中文字节以及规定以外的符号,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题描述

需求是输入账号只能为手机号、邮箱、字母和数字组成的字符串,那么就是所有大小写字母、数字、以及符号 -  _  @  . 四种。

条件限制

  • 微信小程序无法直接通过type属性实现,type属性中没有专门为只允许英文字母的输入类型。详情见input | uni-app官网
     
  • 微信小程序不支持直接操作dom,因为他没有传统意义上的DOM。

问题分析

使用正则过滤数据,但是如果是使用的动态绑定的话,直接把过滤后的值赋给input框动态绑定的值输入框还是可以出现中文。会出现我开始输入中文然后input框可以看见,然后输入英文,中文被删除了如下。

错误代码
HTML

<input class="item_left account" placeholder="官方账号" :value="accountValue" maxlength=20  @input="inputAccount">

JS

<script>export default {data() {return {accountValue: '', //账号输入框}},methods: {// 输入账号inputAccount(e) {this.accountValue = e.detail.value.replace(/[^a-zA-Z0-9\-@_.]/g, '');},}}
</script>

解决方法

使用 @input 事件处理函数并从该函数中返回一个值。在微信小程序中,input 组件的 input 事件处理函数可以返回一个值,这个返回值将直接影响输入框的当前值。如果你在事件处理函数中返回一个经过处理(如过滤操作)的字符串,那么输入框的显示将被更新为这个返回的字符串。

如果不返回值会怎么样?

如果你的事件处理函数不返回任何值,或者返回的是 undefined,那么输入框的内容将不会被强制更改为你在函数中设置的过滤后的值。这种情况下:

  • 用户输入的内容(包括中文或其他不被允许的字符)将显示在输入框中,因为没有返回值去覆盖用户的输入。
  • 尽管你可能在事件处理函数中已经将动态绑定的值设置为过滤后的值,但因为没有返回这个值,输入框的显示内容不会同步更新,仍然显示用户原始输入的内容。

正确代码

html

<input class="item_left account" placeholder="官方账号" :value="accountValue" maxlength=20  @input="inputAccount">

js

<script>export default {data() {return {accountValue: '', //账号输入框}},methods: {// 输入账号inputAccount(e) {// 过滤掉所有双字节字符(包括汉字)和非法符号this.accountValue = e.detail.value.replace(/[^a-zA-Z0-9\-@_.]/g, '');return this.accountValue},}}
</script>

这篇关于uni微信小程序input框过滤中文字节以及规定以外的符号的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1011214

相关文章

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也

Python实现中文文本处理与分析程序的示例详解

《Python实现中文文本处理与分析程序的示例详解》在当今信息爆炸的时代,文本数据的处理与分析成为了数据科学领域的重要课题,本文将使用Python开发一款基于Python的中文文本处理与分析程序,希望... 目录一、程序概述二、主要功能解析2.1 文件操作2.2 基础分析2.3 高级分析2.4 可视化2.5

Spring Boot 结合 WxJava 实现文章上传微信公众号草稿箱与群发

《SpringBoot结合WxJava实现文章上传微信公众号草稿箱与群发》本文将详细介绍如何使用SpringBoot框架结合WxJava开发工具包,实现文章上传到微信公众号草稿箱以及群发功能,... 目录一、项目环境准备1.1 开发环境1.2 微信公众号准备二、Spring Boot 项目搭建2.1 创建

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

Redis出现中文乱码的问题及解决

《Redis出现中文乱码的问题及解决》:本文主要介绍Redis出现中文乱码的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 问题的产生2China编程. 问题的解决redihttp://www.chinasem.cns数据进制问题的解决中文乱码问题解决总结

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试

HTML input 标签示例详解

《HTMLinput标签示例详解》input标签主要用于接收用户的输入,随type属性值的不同,变换其具体功能,本文通过实例图文并茂的形式给大家介绍HTMLinput标签,感兴趣的朋友一... 目录通用属性输入框单行文本输入框 text密码输入框 password数字输入框 number电子邮件输入编程框

Python基于微信OCR引擎实现高效图片文字识别

《Python基于微信OCR引擎实现高效图片文字识别》这篇文章主要为大家详细介绍了一款基于微信OCR引擎的图片文字识别桌面应用开发全过程,可以实现从图片拖拽识别到文字提取,感兴趣的小伙伴可以跟随小编一... 目录一、项目概述1.1 开发背景1.2 技术选型1.3 核心优势二、功能详解2.1 核心功能模块2.

python编写朋克风格的天气查询程序

《python编写朋克风格的天气查询程序》这篇文章主要为大家详细介绍了一个基于Python的桌面应用程序,使用了tkinter库来创建图形用户界面并通过requests库调用Open-MeteoAPI... 目录工具介绍工具使用说明python脚本内容如何运行脚本工具介绍这个天气查询工具是一个基于 Pyt