使用 JavaScript 删除非字母数字字符

Mehvish Ashiq 2023年1月30日
  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
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