重學JS-004 --- JavaScript算法與數據結構(四)JavaScript 表單驗證

文章目錄

  • HTML
    • label 屬性
    • input 屬性
    • button 屬性
    • fieldset 屬性
    • select 屬性
      • option 屬性
    • div 屬性
  • script
    • getElementById
    • querySelectorAll
    • null
    • 循環
    • 模版文字
    • 函數
    • 事件監聽器
    • regex
      • 舉例
    • String
    • Math
    • Array

HTML

HTML 屬性應該用雙引號引起來。

label 屬性

for=“”

input 屬性

id=“”
type=“number/text/radio/checkbox/button/emial/submit”
min=“0”
max=“14”
placeholder=“”
required

button 屬性

id=“”
name=“”
type=“submit”

fieldset 屬性

id=“”

<fieldset id="breakfast"><legend>Breakfast</legend>
</fieldset>

select 屬性

id=“”
name=“”

option 屬性

id=“”
name=“”
value=“”
selected

div 屬性

id=“”
class=“”

script

<script src="./script.js"></script>

getElementById

要訪問具有給定 id 名稱的 HTML 元素,可以使用 getElementById() 方法。

在編程中,在變量前面加上 is 或 has 是一種常見的做法,表示該變量代表布爾值。

output 變量是一個元素,它具有 classList 屬性,具有 .remove() 方法,接受一個字符串,表示要從元素中刪除的類。
classList 屬性具有 .add() 方法,它接受一個字符串來表示要添加到元素的類。

const output = document.getElementById('output');
output.classList.remove("hide"); 
output.classList.add("hide");

querySelectorAll

querySelectorAll() 方法返回與選擇器匹配的所有元素的 NodeList。 NodeList
是一個類似數組的對象,因此可以使用括號表示法訪問其中的元素。

document.querySelectorAll 返回 NodeList,它類似于數組,但不是數組。
但是,Array 對象有一個 .from() 方法,它接受類似數組的對象并返回一個數組。

注意:HTML input 字段的值在 JavaScript 中以字符串形式接收。 在執行任何計算之前,你需要將這些字符串轉換為數字。

null

JavaScript 中的 null 是一個特殊原語,表示故意缺少某個值。 在布爾上下文中,null 被認為是假的,在條件語句中其計算結果為 false。

循環

for...of

模版文字

JavaScript 具有一項稱為 模板文字 的功能,它允許你直接在字符串中插入變量。 模板文字用反引號 `` 表示,而不是單引號或雙引號。 可以通過用 ${} 包圍變量來將變量傳遞到模板文字中 - 變量的值將插入到字符串中。
const templateLiteral = Hello, my name is ${name}~!;

函數

接受參數類型的函數

function cleanInputString(str) {}

事件監聽器

addEntryButton.addEventListener("click", addEntry);
calorieCounter.addEventListener("submit", calculateCalories);

regex

要匹配字符串中的特定字符,可以使用正則表達式或簡稱**“regex”**。

JavaScript 中的正則表達式由正斜杠包裹的模式表示。

在 JavaScript 正則表達式中,??開頭斜杠 /和結尾斜杠 /?? 是正則表達式的??字面量定界符??,用于表示正則表達式的開始和結束。

  • 要匹配任意數字,可以使用字符類 [0-9]。 這將匹配 0 和 9 之間的任意數字。
  • 有一個簡寫字符類可以匹配任何數字:\d。 用這個簡寫替換你的 [0-9] 字符類。
  • 正則表達式中的 + 修飾符允許你匹配出現一次或多次的模式。 要匹配數字模式一次或多次,請在每個數字字符類后添加加號。
  • 字符串有一個 .match() 方法,它接受一個正則表達式參數。
  • .match() 將返回匹配結果數組 - 包含第一個匹配項,如果使用全局標志,則包含所有匹配項。
  • 當未找到匹配項時,match 方法返回 null。

[ ‘1e3’, index: 0, input: ‘1e3’, groups: undefined ]
match 方法返回一個包含字符串中找到的所有匹配項的數組。

以下是該信息的完整分類:

“1e3” 是與 /\d+e\d+/i 正則表達式匹配的值。
index: 0 是字符串中匹配值的索引。
input: ‘1e3’ 是匹配的原始字符串。
groups: undefined 是匹配的組。

  1. ??基本語法??
    const regex = /pattern/flags;
    ? ??/pattern/??:兩個斜杠之間的內容是正則表達式的模式(pattern)。
    ? ??flags??(可選):跟在最后一個斜杠后面的標志(如 g、i、m等),用于修改匹配行為。Regex 對此有一個標志 - i 標志,代表“不敏感”。

  2. ??與 RegExp構造函數的區別??
    JavaScript 支持兩種方式創建正則表達式:
    ? ??字面量形式??(使用 /…/):
    const regex = /ab+c/i; // 匹配 “ab+c”,忽略大小寫
    ? ??構造函數形式??(使用 new RegExp()):
    const regex = new RegExp(“ab+c”, “i”); // 同上
    ??區別??:
    ? 字面量形式 (/…/) 在??代碼解析時??編譯,適合靜態模式。
    ? RegExp構造函數在??運行時??編譯,適合動態生成的正則表達式。

  3. ??斜杠 /在正則模式中的轉義??
    如果正則表達式本身需要匹配 /字符,必須用 ``轉義:
    const regex = /https://example.com/; // 匹配 “https://example.com”
    ? 在 RegExp構造函數中,由于模式是字符串,斜杠不需要額外轉義:
    const regex = new RegExp(“https://example\.com”); // 同上

  4. ??總結??
    形式 | 語法 | 適用場景
    —|—|—
    ??正則字面量?? | /pattern/flags | 固定模式,代碼更簡潔
    ??RegExp構造函數?? | new RegExp(“pattern”, “flags”) | 動態模式(如用戶輸入)

??關鍵點??:
? /…/是正則表達式的??字面量表示法??,類似于字符串的 "…"或 ‘…’。
? 斜杠 /本身不是正則語法的一部分,只是 JavaScript 的語法標記。
? 如果模式包含 /,必須轉義為 /。

注意需要使用反斜杠字符 \ 來轉義 + 符號,因為它在正則表達式中具有特殊含義。

在正則表達式中,簡寫字符類允許你匹配特定字符,而無需在模式中寫下這些字符。
速記字符類前面帶有反斜杠(\)。
字符類 \s 將匹配任何空白字符。

舉例

const regex = /±\s/; 按順序匹配特定字符
將你的 ±\s 模式轉變為字符類。const regex = /[±\s]/; 匹配特定字符中的一個

const regex = /±\s/;
const regex = /[±\s]/;
這兩個 JavaScript 正則表達式看起來相似但有重要區別:

  1. const regex = /±\s/;
    ? 匹配確切的字符序列:加號 +后跟連字符 -后跟一個空白字符
    ? 例如會匹配 "± "這樣的字符串
    ? 這里的 +是轉義加號,-是普通連字符,\s是空白字符

  2. const regex = /[±\s]/;
    ? 匹配字符類中的任意一個字符:
    ? +普通加號(在字符類中不需要轉義)
    ? -連字符(因為它位于字符類的末尾,所以被解釋為字面量)
    ? \s任何空白字符
    ? 例如會匹配 “+”、"-"或任何空白字符(空格、制表符等)

關鍵區別:
? 第一個是匹配特定序列,第二個是匹配字符類中的任意單個字符
? 在字符類 []中,+不需要轉義,-如果在開頭或結尾也不會有特殊含義

正則表達式還可以采用特定標志來改變模式匹配行為。
標志被添加在結束的 / 之后。 g 標志代表“全局”,它將告訴模式在找到匹配項后繼續查找。

String

JavaScript 提供了 .replace() 方法,使你可以用另一個字符串替換字符串中的字符。 此方法接受兩個參數。 第一個參數是要替換的字符序列,可以是字符串或正則表達式模式。 第二個參數是替換匹配序列的字符串。

由于字符串是不可變的,replace 方法返回一個替換字符后的新字符串。

字符串有一個 .match() 方法,它接受一個正則表達式參數。 .match() 將返回匹配結果數組 - 包含第一個匹配項,如果使用全局標志,則包含所有匹配項。

match 方法返回一個包含字符串中找到的所有匹配項的數組。

當未找到匹配項時,match 方法返回 null。 (JavaScript 中的 null 是一個特殊原語,表示故意缺少某個值。 在布爾上下文中,null 被認為是假的,在條件語句中其計算結果為 false。)

toLowerCase()
將字符串轉換為小寫時,可以使用 toLowerCase() 方法。 此方法返回轉換為小寫的調用字符串值。

Math

Math.abs() 是一種內置的 JavaScript 方法,它將返回數字的絕對值。

Array

Array.from()

container 的 innerHTML 屬性設置為空字符串。 這將清除該輸入容器的所有內容
container.innerHTML = ‘’;
清除input的值:budgetNumberInput.value = ‘’;
清除 output 元素的文本。 你可以通過將 innerText 屬性設置為空字符串來實現此目的。
output.innerText = ‘’;

innerText 和 innerHTML 的區別在于 innerText 不會呈現 HTML 元素,而是將標簽和內容顯示為原始文本。

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

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

相關文章

本地搭建 Redis/MySQL 并配置國內鏡像加速(Docker/原生安裝 | macOS/Linux/Windows)

適用人群&#xff1a;前端/后端/數據/測試工程師&#xff1b;需要在單機上快速搭建 Redis 與 MySQL 的開發環境&#xff1b;同時在國內網絡環境下加速下載&#xff08;容器鏡像、系統包倉庫&#xff09;。文章結構&#xff1a;一圖流 → TL;DR → Docker 方式 → 原生安裝&…

SynClub-百度在海外推出的AI社交產品

本文轉載自&#xff1a;SynClub-百度在海外推出的AI社交產品 - Hello123工具導航 ** 一、&#x1f916; SynClub 是什么&#xff1f; SynClub 是百度出海的 AI 社交產品&#xff0c;主打 "打造專屬 AI 朋友" 的創新概念&#xff0c;讓你在虛擬世界擁有真正懂你的貼…

Easy Rules規則引擎:輕量級Java規則處理實踐指南

引言:業務規則與代碼解耦的藝術 在現代軟件開發中,業務規則頻繁變更與核心邏輯穩定性之間的矛盾日益突出。傳統硬編碼的if-else語句在面對復雜業務場景時會導致: 代碼臃腫:成百上千的條件分支難以維護 耦合度高:業務邏輯與系統架構深度綁定 變更成本高:微小規則調整需要…

機器人 - 無人機基礎(5) - 飛控中的傳感器

目錄 一、加速度計 1.1 加速度計原理 1.2 加速度計校準 1.2.1 誤差模型 1.2.2 關于MPU6050校準方式 與 代碼思路 二、陀螺儀 2.1 陀螺儀原理 2.1.1 科里奧利力 2.1.2 陀螺儀原理 2.2 陀螺儀校準 三、加速度計與陀螺儀濾波部分 四、磁力計 4.1 磁力計原理 4.2 磁力…

PHP - 線程安全 - 疑問與答案

線程安全問題&#xff08;多線程環境需加鎖&#xff09; 怎么理解 php有線程安全問題嗎要理解 PHP 中的線程安全問題&#xff0c;需要結合 PHP 的運行模式和線程安全的本質來分析&#xff1a;1. 線程安全的本質線程安全問題的核心是&#xff1a;當多個線程同時訪問共享資源&…

使用腳本進行監測以nginx狀態頁為例

1、首先打開nginx的狀態頁 location /nginx_status {stub_status on;}2、進行訪問測試 curl http://127.0.0.1/nginx_statusActive connections: 1 server accepts handled requests1 1 1 Reading: 0 Writing: 1 Waiting: 03、在客戶端編寫腳本進行數據采集 編寫腳本方便采集不…

prettier、eslint、stylelint在項目中使用

prettier 1&#xff09;vscode中使用 a. 安裝插件(Prettier)安裝成功后&#xff0c;在你打開支持的文件時&#xff0c;下方文件信息狀態欄會有prettier標致&#xff1a;雙擊它或者直接在輸出命令窗口那里查看prettier的日志信息&#xff1a;從日志這里可以看出&#xff0c;它是…

【C++】類對象內存布局與大小計算

1. 計算類對象的大小類實例化的對象中只存儲成員變量&#xff0c;不存儲成員函數&#xff0c;函數要用是通過 this 指針拿的。因為一個類可以實例化出 N 個對象&#xff0c;每個對象的成員變量都可以存儲不同的值&#xff0c;但是調用的函數卻是同一個。如果每個對象都成員函數…

容易忽視的TOS無線USB助手配網和接入USB使用: PC和TOS-WLink需要IP暢通,

引言&#xff1a;我們常常把重心放在了TOS-WLink的加入路由器&#xff0c;獲取IP&#xff1b;常常忽視了其實是要求PC和TOS-WLink需要IP暢通TOS無線USB助手首次藍牙配網, 無線接入USB設備到電腦, 分為是兩個過程&#xff1a;1, 藍牙連接TOS-WLink&#xff0c;如果配置的WIF…

學習Python中Selenium模塊的基本用法(7:元素操作-1)

定位網頁元素后&#xff0c;Selenium模塊支持點擊、發送文本或按鍵、清除內容等操作。本文以百度網站為例學習并測試這幾類操作的基本用法。首先是發送文本或按鍵&#xff0c;主要用到send_keys函數&#xff0c;如果是發送文本&#xff0c;則直接將文本內容作為函數入參即可&am…

使用MP4視頻格式鏈接地址的自適應視頻彈窗實現方案HTML代碼

以下是使用MP4視頻格式鏈接地址的自適應視頻彈窗實現方案&#xff1a;視頻彈窗播放器 使用原生MP4視頻格式鏈接&#xff0c;直接通過HTML5 video元素播放 響應式設計適配不同屏幕尺寸&#xff0c;16:9視頻比例保持不變 底部視頻列表可橫向滾動&#xff0c;點擊縮略圖切換不同視…

中農具身導航賦能智慧農業!AgriVLN:農業機器人的視覺語言導航

作者&#xff1a;Xiaobei Zhao, Xingqi Lyu, Xiang Li單位&#xff1a;中國農業大學論文標題&#xff1a;AgriVLN: Vision-and-Language Navigation for Agricultural Robots論文鏈接&#xff1a;https://arxiv.org/pdf/2508.07406v1代碼鏈接&#xff1a;https://github.com/Al…

Zynq開發實踐(Verilog、仿真、FPGA和芯片設計)

【 聲明&#xff1a;版權所有&#xff0c;歡迎轉載&#xff0c;請勿用于商業用途。 聯系信箱&#xff1a;feixiaoxing 163.com】zynq最大的優勢&#xff0c;就是把arm和fpga結合在一起了。這樣一顆soc里面&#xff0c;就可以用軟件去驅動外設ip&#xff0c;這是之前沒有過的體驗…

LabVIEW刺激響應測量解析

?該 LabVIEW 程序用于刺激 - 響應測量&#xff0c;實現測試信號生成、響應采集及測量分析&#xff0c;涵蓋信號同步、并行處理等概念&#xff0c;用于設備總諧波失真&#xff08;THD&#xff09;等電信號特性測量場景&#xff0c;借助 LabVIEW 圖形化編程優勢&#xff0c;將復…

Boosting(提升法)詳解

一、引言在集成學習&#xff08;Ensemble Learning&#xff09;中&#xff0c;Boosting&#xff08;提升法&#xff09; 是一種非常經典且強大的方法。它通過將多個弱學習器&#xff08;Weak Learners&#xff09;進行迭代組合&#xff0c;逐步提升整體的預測性能&#xff0c;從…

寵物智能手機PetPhone技術解析:AI交互與健康監測的系統級創新

當你的寵物通過AI自主接聽視頻通話&#xff0c;背后是計算機視覺與邊緣計算的技術融合。全球首款寵物智能手機正在重新定義跨物種人機交互。近日&#xff0c;亞洲寵物展覽會上亮相的PetPhone引發了技術社區的廣泛關注。這款專為寵物設計的智能設備集成了多項技術創新&#xff0…

智慧零售商品識別誤報率↓74%!陌訊多模態融合算法在自助結算場景的落地優化

原創聲明&#xff1a;本文為原創技術解析文章&#xff0c;核心技術參數與架構設計引用自 “陌訊技術白皮書”&#xff0c;禁止未經授權的轉載與篡改。文中算法邏輯與實戰方案均基于陌訊視覺算法 v3.2 版本展開&#xff0c;所有實測數據均來自智慧零售場景下的真實部署環境。一、…

ArcGIS學習-9 ArcGIS查詢操作

前置操作加載數據修改坐標系修改單位屬性查詢單條件查詢打開安徽省縣界的屬性表多條件查詢值得注意的是&#xff0c;不加括號和前面加括號&#xff0c;查出來的結果一致&#xff08;35條記錄&#xff09;而后面加括號&#xff0c;查詢結果與之前的不一致&#xff08;25條記錄&a…

A-Level物理課程全解析:知識點、學習計劃與培訓機構推薦

A-Level物理課程是國際教育體系中的重要科目&#xff0c;不僅為大學理工科專業打下基礎&#xff0c;也培養學生的科學思維與實驗能力。本文將從核心知識點解析、高效學習計劃制定&#xff0c;以及優質培訓機構推薦三個方面&#xff0c;為學生和家長提供全面、實用的指南。一、A…

Linux 進階之性能調優,文件管理,網絡安全

一、系統性能調優系統性能調優是 Linux 管理中的關鍵技能&#xff0c;它能顯著提升系統在不同應用場景下的表現。通過針對性的調優&#xff0c;可以解決資源瓶頸問題&#xff0c;提高服務響應速度&#xff0c;優化資源利用率。&#xff08;一&#xff09;CPU 性能調優知識點詳解…