使用 JavaScript 刪除非字母數字字元

Mehvish Ashiq 2023年1月30日 2022年5月10日
  1. 使用 JavaScript 刪除非字母數字字元
  2. 在 JavaScript 中使用 JSON.stringify() 轉換字串
  3. 在 JavaScript 中使用 \u0600-\u06FF 來刪除除字母數字以外的內容
使用 JavaScript 刪除非字母數字字元

非字母數字表示除字母和數字之外的所有內容。字母表可以是任何語言。

本教程詳細說明了我們如何使用 JavaScript 刪除非字母數字字元。我們可以通過兩種方式使用 replace() 方法。

首先是 str.replace(),其次是 JSON.stringify(obj).replace()replace() 函式在給定字串中搜尋一個值或一個模式(也稱為正規表示式),將其替換並輸出一個全新的字串而不修改原始字串。

請記住,如果我們想替換字串中的多個例項,則必須使用帶有修飾符的正規表示式。

JSON.stringify() 將物件轉換為字串,生成的字串遵循 JSON 表示法。如果我們想替換陣列所有元素中的非字母數字字元,此方法非常有用。

使用 JavaScript 刪除非字母數字字元

在這裡,我們丟棄除了英文字母(大寫和小寫)和數字之外的所有內容。g 修飾符表示全域性,i 匹配不區分大小寫。

var input = '123abcABC-_*(!@#$%^&*()_-={}[]:\"<>,.?/~`';
var stripped_string = input.replace(/[^a-z0-9]/gi, '');
console.log(stripped_string);

輸出:

"123abcABC"

我們可以優化上面程式碼中使用的正規表示式,將其替換為/[\W]/g,其中\W 等價於 [^0-9a-zA-Z]。因此,我們的最終正規表示式將是 /[\W_]/g,因為我們從 input 字串中刪除了 underscore

檢查下面給出的程式碼。

var input = '123abcABC-_*(!@#$%^&*()_-={}[]:\"<>,.?/~`';
var stripped_string = input.replace(/[\W_]/g, '')
console.log(stripped_string);

輸出:

"123abcABC"

在 JavaScript 中使用 JSON.stringify() 轉換字串

現在假設我們有一個包含多個字串作為元素的陣列。在這裡,我們可以使用 JSON.stringify() 將它們轉換為字串並根據提供的正規表示式替換它們。

var input = ['123abcABC-_*(!@#$%^&*', 'ABC()_-={}[]:\"<>,.?/~`'];
var stripped_string = JSON.stringify(input).replace(/[\W_]/g, '')
console.log(stripped_string);

輸出:

"123abcABCABC"

在 JavaScript 中使用 \u0600-\u06FF 來刪除除字母數字以外的內容

我們想刪除除字母數字以外的所有內容,但這次我們有阿拉伯和英文字母。為了識別阿拉伯字母,我們必須使用 Unicode 的相對塊範圍,\u0600-\u06FF

var input = 'ن$%^&*(ص ع___ربي-abc123_*(!@#$%^&*()_-={}[]:\"<>,.?/~`';
var stripped_string = input.replace(/[^0-9a-z\u0600-\u06FF]/gi, '')
console.log(stripped_string);

輸出:

"نصعربيabc123"

多想一下,想象一下使用多種語言並從 Unicode 中為每種語言搜尋相對的塊範圍。那會很耗時,對吧?

在這種情況下,/[^\p{L}\d]/gu 非常有用。在這裡,\p{L} 查詢來自任何語言的字母,而\d 查詢數字。

g (global) 全域性替換,而 Unicode 轉義序列使用 u (Unicode) 標識。

在這裡,^ 符號用於否定給定的字符集。因此,最終的正規表示式 /[^\p{L}\d]/gu 意味著替換所有否定提供的字符集的內容。

function nonAlphaNumericRemoval(input) {
 	return input.replace(/[^\p{L}\d]/gu, '')
}
input_string = [
 '#$asdé5kfjdk?',
 '%^uQjoFß^ßI$jI',
 '*(無論 3 如何?!',
 '[фв@#ео1]'
]
for (var input of input_string) {
 	console.log(nonAlphaNumericRemoval(input))
}

輸出:

"asdé5kfjdk"
"uQjoFßßIjI"
"無論 3 如何"
"фвео1"
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

相關文章 - JavaScript String