原生html、vue、uview-plus实现 input输入框电话号码3-4-4形式分隔

server/2025/1/16 7:37:03/

文章目录

  • 原生html写input
  • vue写input
  • uview-plus input组件

htmlinput_1">原生html写input

通过oninput事件实现

<!-- html -->
<input type="text" id="phoneNumber" oninput="formatPhoneNumber(this)" /><script>function formatPhoneNumber(phoneInput) {var number = phoneInput.value.replace(/\D/g, ''), // 获取输入框中的纯数字formattedNumber = '';if (number.length > 0 && number.length <= 3) {formattedNumber = number} else if(number.length <= 8) {formattedNumber = number.replace(/^(\d{3})(\d{4})/, '$1-$2');} else {// 根据电话号码的长度,动态添加分隔符formattedNumber = number.replace(/^(\d{3})(\d{4})(\d{4})$/, '$1-$2-$3');}// 更新输入框的值phoneInput.value = formattedNumber;
}
</script>

vue写input

通过使用计算属性(computed)和方法(methods)来实现电话号码的格式化显示

<template><div id="app"><inputtype="tel"maxlength="13"v-model="formattedPhone"@input="updatePhone($event.target.value)"/></div>
</template><script setup>
import { ref, computed } from 'vue';const phone = ref('');
const formattedPhone = computed({get() {// 当需要显示值时,格式化电话号码return phone.value.replace(/^(\d{3})(\d{4})(\d{4})$/, '$1-$2-$3');},set(value) {// 当输入框的值改变时,更新phone的值phone.value = value.replace(/[^0-9]/g, '');}
});function updatePhone(value) {// 当输入改变时,更新formattedPhone计算属性formattedPhone.value = value;
}
</script>

uview-plus input组件

通过input 的formatter 实现

<up-input v-model="phone" placeholder="请输入" border="none"color="#262626"fontSize="28rpx"type="number"clearableplaceholderStyle="font-size:28rpx;"maxlength="13":formatter="formatter":customStyle="{'font-weight': 500}"></up-input><script setup>
import { ref, computed } from 'vue';const phone = ref('');
function formatter(value) {const cleaned = (value || '').trim();if(cleaned.length <=3) {return cleaned} else if(cleaned.length <= 8) {return cleaned.replace(/^(\d{3})(\d{4})/, '$1-$2');} else {// 根据电话号码的长度,动态添加分隔符return cleaned.replace(/^(\d{3})(\d{4})(\d{4})$/, '$1-$2-$3');}
}
</script>

http://www.ppmy.cn/server/158765.html

相关文章

BTC系列 - 启示录

推荐《区块链启示录&#xff1a;中本聪文集》这本书, 原来早在2010年, BTC生态还不完善的时候, 社区中就已经畅想出了未来其它链上的特色方案, 中本聪也都一一做了教父级回应: coinbase币的成熟时间, 交易池, 交易确认机制, 防51%攻击, 防双重消费, 水龙头, 轻量级客户端, 链上…

unity学习17:unity里的旋转学习,欧拉角,四元数等

目录 1 三维空间里的旋转与欧拉角&#xff0c;四元数 1.1 欧拉角比较符合直观 1.2 四元数 1.3 下面是欧拉角和四元数的一些参考文章 2 关于旋转的这些知识点 2.1 使用euler欧拉角旋转 2.2 使用quaternion四元数,w,x,y,z 2.3 使用quaternion四元数,类 Vector3.zero 这种…

SQL美化器优化

文章目录 1.目录2.代码 1.目录 2.代码 package com.sunxiansheng.mybatis.plus.inteceptor;import org.apache.ibatis.executor.statement.StatementHandler; import org.apache.ibatis.mapping.*; import org.apache.ibatis.plugin.*; import org.apache.ibatis.reflection.*…

云产品评测|阿里云服务诊断

文章目录 关于云服务诊断快速使用诊断功能诊断的定义诊断的意义诊断操作 建议与优化 大家好我是令狐&#xff0c;一名软件研发工程师。今天给大家介绍阿里云服务的诊断工具使用与体会&#xff0c;如果你也在使用阿里云服务&#xff0c;这会大大节省你定位问题的效率&#xff0c…

QT窗口阴影+拖动

QT 去除默认边框&#xff0c;为界面添加阴影&#xff0c;实现拖动效果。只是示例&#xff0c;没有完成关闭等按钮&#xff0c;根据具体情况添加&#xff0c;可以使用ui设计画一个。 #include <QApplication> #include <QWidget> #include <QPoint> #include…

【微服务justsoso-cloud系列】目录

【微服务justsoso-cloud系列】目录 1.vagrantvirtualbox实现centos7安装 2.centos7安装jdk17教程 3.Linux安装Docker教程&#xff08;详解&#xff09; 4.Linux安装git 5.zerotier搭建虚拟局域网&#xff0c;自建planet

如何优化Elasticsearch大文档查询?

记录一次业务复杂场景下DSL优化的过程 背景 B端商城业务有一个场景就是客户可见的产品列表是需要N多闸口及各种其它逻辑组合过滤的&#xff0c;各种闸口数据及产品数据都是存储在ES的(有的是独立索引&#xff0c;有的是作为产品属性存储在产品文档上)。 在实际使用的过程中&a…

【SQL——结构化查询语句】

数据的存储-SQL 数据的计算-Python 数据库是用来存储数据的&#xff0c;在这个过程中&#xff0c;会涉及到数据的增删改查与数据库数据表的维护管理 而SQL语言&#xff0c;就是一种对数据库、数据进行操作、管理、查询的工具。 使用数据库软件去获得库->表->数据&#x…