使用 JavaScript 刪除非字母數字字元
- 使用 JavaScript 刪除非字母數字字元
-
在 JavaScript 中使用
JSON.stringify()
轉換字串 -
在 JavaScript 中使用
\u0600-\u06FF
來刪除除字母數字以外的內容
非字母數字表示除字母和數字之外的所有內容。字母表可以是任何語言。
本教程詳細說明了我們如何使用 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"