正則判斷中文特殊符號

在中文輸入中,不可避免地會出現各種特殊符號,如全形括弧、中文句號、中文逗號等等。在進行輸入限制或檢驗時,我們經常需要用到正則來判斷和操作這些特殊符號。

一、正則判斷特殊字元英文括弧

在正則表達式中,小括弧 ()、中括弧 [] 和大括弧 {} 都是特殊字元,需要進行轉義。但是英文括弧 () 並不需要進行轉義,因為它們並不是特殊字元。在匹配英文括弧時,只需要在正則表達式中直接寫上即可。

const str = "(abc)";
const reg = /\(abc\)/;
console.log(reg.test(str)); // true

二、正則怎麼匹配到各種特殊符號

匹配中文特殊符號需要使用 Unicode 碼點。對於常見的中文特殊符號,可以通過 Unicode 碼點進行匹配。例如全形括弧的 Unicode 碼點是 65288 和 65289,可以通過以下正則進行匹配:

const str = "(abc)";
const reg = /[\uFF08\uFF09]/; // 匹配全形括弧
console.log(reg.test(str)); // true

三、正則特殊符號的表示

在正則表達式中,一些特殊的符號需要特殊的轉義表示。下面列出一些常見的特殊符號以及它們的轉義表示:

  • . :匹配除換行符 \n 以外的任意字元,需要使用 \. 進行轉義。
  • \ :反斜杠本身也是特殊字元,需要使用 \\ 進行轉義。
  • * :匹配前面的表達式零次或多次,需要使用 \* 進行轉義。
  • + :匹配前面的表達式一次或多次,需要使用 \+ 進行轉義。
  • ? :匹配前面的表達式零次或一次,需要使用 \? 進行轉義。
  • | :或操作符,需要使用 \| 進行轉義。
  • () :匹配括弧內的表達式,並且記憶匹配結果,需要使用 \( 和 \) 進行轉義。

四、正則限制特殊符號的輸入

在需要限制特殊符號輸入的場景下,可以使用以下正則,只允許輸入中文、數字和常見的中文標點符號(不包含全形括弧和引號):

const reg = /^[\u4e00-\u9fa5a-zA-Z0-9·。,,!!::;;「」『』??、·]+$/;

五、正則去除特殊符號

在需要去除特殊符號的場景下,可以使用以下正則,把所有非中文、數字和常見中文標點符號的字元都替換為空字元串:

const reg = /[^\u4e00-\u9fa5a-zA-Z0-9·。,,!!::;;「」『』??、·]/g;
const str = "abc 123(中文)";
console.log(str.replace(reg, "")); // abc123中文

六、正則匹配特殊符號

在需要匹配特殊符號的場景下,可以使用相關的 Unicode 碼點或者直接在正則表達式中寫上特殊字元:

const str = "中文(!)";
const reg1 = /[\uFF01]/; // 匹配中文感嘆號
const reg2 = /[!]/; // 直接寫上字元也行
console.log(reg1.test(str)); // true
console.log(reg2.test(str)); // true

七、正則不允許特殊符號

在需要保證不含特殊符號的場景下,可以使用以下正則,只允許輸入中文、字母、數字和下劃線:

const reg = /^[\u4e00-\u9fa5_a-zA-Z0-9]+$/;

八、js正則特殊符號

在使用 JavaScript 中的正則表達式時,需要注意一些特殊符號的轉義問題。在 JavaScript 中反斜杠同樣是轉義符號,需要使用連續兩個反斜杠來表示

const str = "abc(123)";
const reg = /\(123\)/;
console.log(reg.test(str)); // true

九、js正則匹配特殊符號

在使用 JavaScript 中的正則表達式時,可以直接在正則表達式中寫上特殊字元,而不需要使用 Unicode 碼點進行匹配:

const str = "中文!";
const reg = /!/; // 直接寫上字元也行
console.log(reg.test(str)); // true

十、js正則不能輸入特殊符號

在使用 JavaScript 中的正則表達式時,可以通過在輸入框的 onkeydown 事件中阻止輸入特殊符號來實現輸入限制:

const input = document.querySelector("#input");
input.onkeydown = function(e) {
  const keyCode = e.keyCode || e.which || e.charCode;
  const reg = /^[0-9a-zA-Z\u4e00-\u9fa5\s]+$/; // 允許輸入數字、字母、中文和空格
  // 判斷是否是特殊符號
  if (!reg.test(String.fromCharCode(keyCode)) && keyCode !== 8 && keyCode !== 46) {
    e.preventDefault(); // 阻止默認事件
  }
};

以上是幾個與正則判斷中文特殊符號相關的小標題,希望能對大家在日常開發中的正則應用有所幫助。

原創文章,作者:ONUBC,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/370124.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
ONUBC的頭像ONUBC
上一篇 2025-04-18 13:40
下一篇 2025-04-18 13:40

相關推薦

  • Python讀取中文

    Python是一種高級編程語言,被廣泛地應用於各種領域中。而處理中文數據也是其中重要的一部分。本文將介紹在Python中如何讀取中文,為大家提供指導和幫助。 一、讀取中文文件 在P…

    編程 2025-04-29
  • jQuery Datatable分頁中文

    jQuery Datatable是一個非常流行的數據表插件,它可以幫助您快速地在頁面上創建搜索、過濾、排序和分頁的數據表格。不過,它的默認設置是英文的,今天我們就來探討如何將jQu…

    編程 2025-04-29
  • Python計算中文字元個數

    本文將從多個方面對Python計算中文字元個數進行詳細的闡述,包括字元串長度計算、正則表達式統計和模塊使用方法等內容。 一、字元串長度計算 在Python中,計算字元串長度是非常容…

    編程 2025-04-29
  • Python3亂碼轉中文

    本文將詳細介紹如何轉換Python3中的亂碼為中文字元,幫助Python3開發工程師更好的處理中文字元的問題。 一、Python3中文亂碼的原因 在Python3中,中文字元使用的…

    編程 2025-04-29
  • 從16進位轉義到中文字元

    16進位轉義是為了在不同的字符集、不同的編碼下,能夠保證特殊字元被正確的識別和渲染。本文將從多個方面對16進位轉義做詳細的闡述,讓讀者對其有更深入的了解。 一、轉義實現 在Web開…

    編程 2025-04-28
  • opendistroforelasticsearch-kibana的中文應用

    本文將介紹opendistroforelasticsearch-kibana在中文應用中的使用方法和注意事項。 一、安裝及配置 1、安裝opendistroforelasticse…

    編程 2025-04-28
  • Python IDLE如何設置中文運行環境

    Python IDLE是Python的集成開發環境,使用它可以方便地編寫、調試和執行Python程序。但是,默認情況下Python IDLE的運行環境是英文環境,如果需要在Pyth…

    編程 2025-04-27
  • Python 中文轉URL編碼

    本文將從以下幾個方面詳細闡述Python中實現中文轉URL編碼的方法及注意事項。 一、URL編碼概述 URL編碼也稱為百分號編碼,是一種將URL中的非ASCII字元轉換成「%」後加…

    編程 2025-04-27
  • 如何用Python輸出兩行中文字元

    在此篇文章中,我們將探討如何使用Python輸出兩行中文字元。具體而言,我們將從以下幾個方面進行闡述: 一、Python中文輸出的基礎知識 在開始探討如何輸出中文字元之前,我們需要…

    編程 2025-04-27
  • Python3.8中文文檔解讀

    Python 是一種解釋型語言、面向對象、動態數據類型的高級語言。 本篇文章旨在詳細闡述 Python3.8 中文文檔,從各個方面深入剖析 Python 的優勢,包括基礎語法、文件…

    編程 2025-04-25

發表回復

登錄後才能評論