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

news2024/9/24 7:16:34

问题描述

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

条件限制

  • 微信小程序无法直接通过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>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1706393.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

服务器上创建搭建gitlab

一、下载与安装 在主目录操作~ 1.使用wget下载 wget --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-14.0.1-ce.0.el7.x86_64.rpm 可以在开源软件镜像站选择合适的版本&#xff0c;版本不同页面菜单会稍有差异&#xff0c;此次选…

Redis解决缓存一致性问题

文章目录 ☃️概述☃️数据库和缓存不一致采用什么方案☃️代码实现☃️其他 ☃️概述 由于我们的 缓存的数据源来自于数据库, 而数据库的 数据是会发生变化的, 因此,如果当数据库中 数据发生变化,而缓存却没有同步, 此时就会有 一致性问题存在, 其后果是: 用户使用缓存中的过…

Python的selenium爬取

1.selenium 1.1.前言 使用python的requests模块还是存在很大的局限性&#xff0c;例如&#xff1a;只发一次请求&#xff1b;针对ajax动态加载的网页则无法获取数据等等问题。特此&#xff0c;本章节将通过selenium模拟浏览器来完成更高级的爬虫抓取任务。 1.2.什么是seleniu…

Redis 主从搭建简单教程

安装单机 首先拿到安装包 wget https://download.redis.io/releases/redis-7.0.15.tar.gz然后进行解压 tar -zxvf redis-7.0.15.tar.gz 然后创建一个文件夹myredis将原始配置文件进行备份 mkdir /myrediscp redis.conf /myredis/redis7.conf 将配置文件复制进去 最后使用vim编…

深入Java:JSON解析与操作的艺术

哈喽&#xff0c;大家好&#xff0c;我是木头左&#xff01; 一、初识JSON&#xff1a;数据格式的优雅舞者 在现代Web开发中&#xff0c;JSON&#xff08;JavaScript Object Notation&#xff09;以其轻量级和易于阅读的特点成为了数据交换的首选格式。它基于JavaScript的一个…

Python教程:使用Python和PyQt编写进制转换器工具

1.介绍 在现代计算中&#xff0c;进制转换是一项常见且重要的任务。为了简化这个过程&#xff0c;我们也可以利用Python和PyQt自己写一个直观且易于使用的进制转换器工具。这个工具将支持二进制、八进制、十进制和十六进制的相互转换&#xff0c;并提供良好的用户界面和交互体…

finetuning大模型准备(基于Mac环境)

为finetuning进行的热身准备&#xff0c;涉及周边的软件工具&#xff0c;方法。 问题1&#xff1a;finetuning过程较长&#xff0c;采用系统自带命令行没有后台&#xff0c;前台被杀后&#xff0c;容易造成训练失败。 解决方法&#xff1a; tmux可以开启后台训练 问题2&…

参数高效微调PEFT(二)快速入门P-Tuning、P-Tuning V2

参数高效微调PEFT(二)快速入门P-Tuning、P-Tuning V2 参数高效微调PEFT(一)快速入门BitFit、Prompt Tuning、Prefix Tuning 今天&#xff0c;我们继续了解下来自清华大学发布的两种参数高效微调方法P-Tuning和P-Tuning v2。可以简单的将P-Tuning是认为针对Prompt Tuning的改进…

P9 【力扣+知识点】【算法】【二分查找】C++版

【704】二分查找&#xff08;模板题&#xff09;看到复杂度logN&#xff0c;得想到二分 给定一个 n 个元素有序的&#xff08;升序&#xff09;整型数组 nums 和一个目标值 target &#xff0c;写一个函数搜索 nums 中的 target&#xff0c;如果目标值存在返回下标&#xff0…

“揭秘:为什么羊驼Ollama成为计算机运行大型语言模型的最佳拍档?“

最近&#xff0c;AIM 评测了在计算机上本地运行大语言模型&#xff08;LLM&#xff09;的最佳工具&#xff0c;Ollama 脱颖而出&#xff0c;成为最高效的解决方案&#xff0c;提供了无与伦比的灵活性。Ollama 是 Jeffrey Morgan 开发的一款开源工具&#xff0c;它正在彻底改变爱…

网络渗透day2

Windows登录的明文密码存储过程和密文存储位置 明文密码存储过程&#xff1a; Windows操作系统不会以明文形式存储用户密码。相反&#xff0c;当用户设置或更改密码时&#xff0c;系统会对密码进行哈希处理&#xff0c;然后存储其哈希值。哈希处理的目的是为了提高密码的安全性…

前端SEO优化包括哪些方面?

前端SEO优化主要关注网站的用户体验和页面内容的呈现&#xff0c;以确保网站对搜索引擎友好并能吸引用户 首先&#xff0c;要注意页面结构&#xff0c;用对的HTML标签比如标题和段落&#xff0c;这样搜索引擎更容易理解你的网页是怎么组织的&#xff0c;同时&#xff0c;保持H…

Linux 系统中 ODBC 驱动的安装与配置指南

Linux 下的 ODBC 包 从发布包中获取&#xff0c;包名为 openGauss-*.*.0-ODBC.tar.gz。Linux 环境下&#xff0c;开发应用程序要用到 unixODBC 提供的头文件&#xff08;sql.h、sqlext.h 等&#xff09;和库 libodbc.so。这些头文件和库可从 unixODBC-2.3.0 的安装包中获得。 …

@EnableConfigurationProperties源码解析

前言 EnableConfigurationProperties注解的使用&#xff0c;请移步相关博文&#xff1a;EnableConfigurationProperties注解使用 前置知识 Import注解作用简述 注入的类一般继承 ImportSelector 或者 ImportBeanDefinitionRegistrar 接口 继承ImportSelector接口&#xff…

黑龙江某市数字孪生地下水监测系统平台项目建设经验

项目背景 地下水是一种特殊而珍贵的资源&#xff0c;它具有不可替代性&#xff0c;与经济发展及人民生活息息相关&#xff0c;针对日趋严峻的水资源危机&#xff0c;如何合理利用有限的水资源&#xff0c;保障国民经济的可持续发展是一个迫切需要解决的问题。 黑龙江某市积极…

SpringMvc-restful设计风格

Restful 1、入门1.1 简介1.2 实例 1、入门 1.1 简介 RESTFul是什么 RESTFul是WEB服务接口的一种设计风格。 RESTFul定义了一组约束条件和规范&#xff0c;可以让WEB服务接口更加简洁、易于理解、易于扩展、安全可靠。 1.2 实例 web.xml <?xml version"1.0"…

系统测试需求指南(Word版-软件全套资料下载)

1 目的 2 概述 3 测试需求 3.1 测试范围 3.2 测试目标 4 测试需求的现状 5 测试需求的内容 5.1 主体内容 5.2 管理内容 6 测试需求的制定 6.1 需求信息来源 6.2 需求分析 6.2.1 功能性需求 6.2.2 系统功能需求 6.2.3 界面需求 6.2.4 安装需求 6.2.5 业务需求 …

教师信息素养四个方面是什么

在这个信息爆炸的时代&#xff0c;老师们该如何提升自己的信息素养&#xff1f;信息素养&#xff0c;这个看似简单的概念&#xff0c;实际上包含着丰富的内涵和多维度的技能。它不仅仅是获取信息的能力&#xff0c;更是一种综合运用信息资源&#xff0c;解决教学和生活中问题的…

gRPC 状态码解读:一文看懂

gRPC 是什么&#xff1f; gRPC&#xff08;gRPC Remote Procedure Call&#xff09;是一个高性能的开源框架&#xff0c;它通过远程过程调用&#xff08;RPC&#xff09;机制促进应用程序之间的通信。 gRPC 框架使客户端应用程序能够调用不同机器上的服务器应用程序的方法&am…

零拷贝(Zero Copy)

目录 零拷贝&#xff08;Zero Copy&#xff09; 1.什么是Zero Copy? 2.物理内存和虚拟内存 3.内核空间和用户空间 4.Linux的I/O读写方式 4.1 I/O中断原理 4.2 DMA传输原理 5.传统I/O方式 5.1传统读操作 5.2传统写操作 6.零拷贝 6.1.用户态直接IO 6.2.mmapwrite …