輸入框僅支持英文、特殊符號、全角自動轉半角 vue3

需求:封裝一個輸入框組件
1.只能輸入英文。
2.輸入的小寫英文自動轉大寫。
3.輸入的全角特殊符號自動轉半角特殊字符

效果圖在這里插入圖片描述

代碼

<script setup>
import { defineEmits, defineModel, defineProps } from "vue";
import { debounce } from "lodash";/*** 1.只能輸入英文* 2.輸入的小寫英文自動轉大寫:使用 JavaScript 的 toUpperCase() 方法來轉換。* 3.輸入的全角特殊符號自動轉半角特殊字符:這個也可以通過正則和替換的方式來處理* @type {EmitFn<(string)[]>}*/
const emits = defineEmits(["input", "blur"]);
const inputStyle = defineModel("inputStyle"); // 輸入框自定義樣式
const inputValue = defineModel();const props = defineProps({// 輸入最大長度maxLength: {type: Number,default: 10000},// 是否禁用isDisabled: {type: Boolean,default: false},// 是否顯示后綴isShowAppend: {type: Boolean,default: false}
});
// 提示語
const placeholderInput = defineModel("placeholderInput", {default: "請輸入"
});// 處理輸入的邏輯
const handleInput = debounce(val => {let newValue = val.trim();// 1. 允許中文符號和英文符號的輸入// 這里我們允許常見的符號,如:·¥……()【】、;‘,。!@#$%^&*()_+{}|:"<>?~`.,;'\-=\[\]\\\/newValue = newValue.replace(/[^a-zA-Z·¥……()【】、;‘,。!@#$%^&*()_+{}|:"<>?~`.,;'\-=\[\]\\/!]/g,"");// 2. 小寫字母自動轉為大寫newValue = newValue.toUpperCase();// 3. 全角字符轉為半角字符newValue = newValue.replace(/[\uFF01-\uFF5E]/g, match =>String.fromCharCode(match.charCodeAt(0) - 0xfee0));// 4. 手動轉換全角的【】為半角的[]newValue = newValue.replace(//g, "[").replace(//g, "]");inputValue.value = newValue; // 更新輸入框的值emits("input", inputValue.value); // 發出 input 事件
}, 300);// 失去焦點事件
const onBlur = () => {emits("blur", inputValue.value);
};
</script><template><div class="custom_common_input"><el-inputv-model="inputValue"clearable:disabled="isDisabled":maxlength="maxLength":input-style="inputStyle":placeholder="placeholderInput"style="width: 100%"@input="handleInput"@blur="onBlur"><template v-if="isShowAppend" #append><slot name="append" /></template></el-input></div>
</template><style scoped lang="scss">
.custom_common_input {width: 100%;
}
</style>

使用方法

const value = ref("");<BasicInputEn v-model="value" />

最終效果

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/77994.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/77994.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/77994.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Uniapp:創建項目

目錄 一、前提準備二、創建項目三、項目結構四、運行測試 一、前提準備 首先要創建uniapp項目&#xff0c;需要先下載HBuilderX&#xff0c;HBuilderX是一款開箱即用的工具&#xff0c;下載完畢之后&#xff0c;解壓到指定的目錄即可使用&#xff0c;需要注意的是最好路徑里面…

ESM 內功心法:化解 require 中的奪命一擊!

前言 傳聞在JavaScript與TypeScript武林中,曾有兩大絕世心法:CommonJS與ESM。兩派高手比肩而立,各自稱霸一方,江湖一度風平浪靜。 豈料,時局突變。ESM逐步修成陽春白雪之姿,登堂入室,成為主流正統。CommonJS則漸入下風,功力不濟,逐漸退出主舞臺。 話說某日,一位前…

【STL】unordered_set

在 C C C 11 11 11 中&#xff0c; S T L STL STL 標準庫引入了一個新的標準關聯式容器&#xff1a; u n o r d e r e d _ s e t unordered\_set unordered_set&#xff08;無序集合&#xff09;。功能和 s e t set set 類似&#xff0c;都用于存儲唯一元素。但是其底層數據結…

go語言八股文

1.go語言的接口是怎么實現 接口&#xff08;interface&#xff09;是一種類型&#xff0c;它定義了一組方法的集合。任何類型只要實現了接口中定義的所有方法&#xff0c;就被認為實現了該接口。 代碼的實現 package mainimport "fmt"// 定義接口 type Shape inte…

kafka auto.offset.reset詳解

在 Kafka 中&#xff0c;auto.offset.reset latest 的含義及行為如下&#xff1a; 1. ??核心定義?? 當消費者組??首次啟動??或??無法找到有效的 offset??&#xff08;例如 offset 過期、被刪除或從未提交&#xff09;時&#xff0c;消費者會從分區的??最新位置…

深度學習-損失函數

目錄 1. 線性回歸損失函數 1.1 MAE損失 1.2 MSE損失 2. CrossEntropyLoss 2.1 信息量 2.2 信息熵 2.3 KL散度 2.4 交叉熵 3. BCELoss 4. 總結 1. 線性回歸損失函數 1.1 MAE損失 MAE&#xff08;Mean Absolute Error&#xff0c;平均絕對誤差&#xff09;通常也被稱…

第六篇:linux之解壓縮、軟件管理

第六篇&#xff1a;linux之解壓縮、軟件管理 文章目錄 第六篇&#xff1a;linux之解壓縮、軟件管理一、解壓和壓縮1、window壓縮包與linux壓縮包能否互通&#xff1f;2、linux下壓縮包的類型3、打包與壓縮 二、軟件管理1、rpm1、什么是rpm&#xff1f;2、rpm包名組成部分3、如何…

Redis 鍵管理

Redis 鍵管理 以下從鍵重命名、隨機返回鍵、鍵過期機制和鍵遷移四個維度展開詳細說明&#xff0c;結合 Redis 核心命令與底層邏輯進行深入分析&#xff1a; 一、鍵重命名 1. ?RENAME?? 與 ?RENAMENX?? **RENAME key newkey?**&#xff1a; 功能&#xff1a;強制重命名…

OpenCV 模板匹配方法詳解

文章目錄 1. 什么是模板匹配&#xff1f;2. 模板匹配的原理2.1數學表達 3. OpenCV 實現模板匹配3.1基本步驟 4. 模板匹配的局限性5. 總結 1. 什么是模板匹配&#xff1f; 模板匹配&#xff08;Template Matching&#xff09;是計算機視覺中的一種基礎技術&#xff0c;用于在目…

TextCNN 模型文本分類實戰:深度學習在自然語言處理中的應用

在自然語言處理&#xff08;NLP&#xff09;領域&#xff0c;文本分類是研究最多且應用最廣泛的任務之一。從情感分析到主題識別&#xff0c;文本分類技術在眾多場景中都發揮著重要作用。最近&#xff0c;我參與了一次基于 TextCNN 模型的文本分類實驗&#xff0c;從數據準備到…

Qt-創建模塊化.pri文件

文章目錄 一、.pri文件的作用與基本結構作用基本結構 二、創建.pri文件如何添加模塊代碼&#xff1f; 一、.pri文件的作用與基本結構 作用 在Qt開發中&#xff0c;.pri文件&#xff08;Project Include File&#xff09;是一種配置包含文件&#xff0c;用于模塊化管理和復用項…

SpringCloud組件——Eureka

一.背景 1.問題提出 我們在一個父項目下寫了兩個子項目&#xff0c;需要兩個子項目之間相互調用。我們可以發送HTTP請求來獲取我們想要的資源&#xff0c;具體實現的方法有很多&#xff0c;可以用HttpURLConnection、HttpClient、Okhttp、 RestTemplate等。 舉個例子&#x…

EAL4+與等保2.0:解讀中國網絡安全雙標準

EAL4與等保2.0&#xff1a;解讀中國網絡安全雙標準 在當今數字化時代&#xff0c;網絡安全已成為各個行業不可忽視的重要議題。特別是在金融、政府、醫療等領域&#xff0c;保護信息的安全性和隱私性顯得尤為關鍵。在中國&#xff0c;EAL4和等級保護2.0&#xff08;簡稱“等保…

FFmpeg+Nginx+VLC打造M3U8直播

一、視頻直播的技術原理和架構方案 直播模型一般包括三個模塊&#xff1a;主播方、服務器端和播放端 主播放創造視頻&#xff0c;加美顏、水印、特效、采集后推送給直播服務器 播放端&#xff1a; 直播服務器端&#xff1a;收集主播端的視頻推流&#xff0c;將其放大后推送給…

【Redis】緩存三劍客問題實踐(上)

本篇對緩存三劍客問題進行介紹和解決方案說明&#xff0c;下篇將進行實踐&#xff0c;有需要的同學可以跳轉下篇查看實踐篇&#xff1a;&#xff08;待發布&#xff09; 緩存三劍客是什么&#xff1f; 緩存三劍客指的是在分布式系統下使用緩存技術最常見的三類典型問題。它們分…

Flink 2.0 編譯

文章目錄 Flink 2.0 編譯第一個問題 java 版本太低maven 版本太低maven 版本太高開始編譯擴展多版本jdk 配置 Flink 2.0 編譯 看到Flink2.0 出來了&#xff0c;想去玩玩&#xff0c;看看怎么樣&#xff0c;當然第一件事&#xff0c;就是編譯代碼&#xff0c;但是沒想到這么多問…

獲取印度股票市場列表、查詢IPO信息以及通過WebSocket實時接收數據

為了對接印度股票市場&#xff0c;獲取市場列表、查詢IPO信息、查看漲跌排行榜以及通過WebSocket實時接收數據等步驟。 1. 獲取市場列表 首先&#xff0c;您需要獲取支持的市場列表&#xff0c;這有助于了解哪些市場可以交易或監控。 請求方法&#xff1a;GETURL&#xff1a…

云原生--CNCF-1-云原生計算基金會介紹(云原生生態的發展目標和未來)

1、CNCF定義與背景 云原生計算基金會&#xff08;Cloud Native Computing Foundation&#xff0c;CNCF&#xff09;是由Linux基金會于2015年12月發起成立的非營利組織&#xff0c;旨在推動云原生技術的標準化、開源生態建設和行業協作。其核心目標是通過開源項目和社區協作&am…

【Rust 精進之路之第5篇-數據基石·下】復合類型:元組 (Tuple) 與數組 (Array) 的定長世界

系列&#xff1a; Rust 精進之路&#xff1a;構建可靠、高效軟件的底層邏輯 作者&#xff1a; 碼覺客 發布日期&#xff1a; 2025-04-20 引言&#xff1a;從原子到分子——組合的力量 在上一篇【數據基石上】中&#xff0c;我們仔細研究了 Rust 的四種基本標量類型&#xff1…

MongoDB 集合名稱映射問題

項目場景 在使用 Spring Data MongoDB 進行開發時&#xff0c;定義了一個名為 CompetitionSignUpLog 的實體類&#xff0c;并創建了對應的 Repository 接口。需要明確該實體類在 MongoDB 中實際對應的集合名稱是 CompetitionSignUpLog 還是 competitionSignUpLog。 問題描述 …