迹忆客 专注技术分享

当前位置:主页 > 学无止境 > WEB前端 > JavaScript >

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

作者:迹忆客 最近更新:2023/03/09 浏览次数:

非字母数字表示除字母和数字之外的所有内容。字母表可以是任何语言。

本教程详细说明了我们如何使用 JavaScript 删除非字母数字字符。我们可以通过两种方式使用 replace() 方法。

首先是 str.replace(),其次是 JSON.stringify(obj).replace()replace() 函数在给定字符串中搜索一个值或一个模式(也称为正则表达式),将其替换并输出一个全新的字符串而不修改原始字符串。

请记住 ,如果我们想替换字符串中的多个实例,则必须使用带有修饰符的正则表达式。

JSON.stringify() 将对象转换为字符串,生成的字符串遵循 JSON 表示法。如果我们想替换数组所有元素中的非字母数字字符,此方法非常有用。

在这里,我们丢弃除了英文字母(大写和小写)和数字之外的所有内容。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"

现在假设我们有一个包含多个字符串作为元素的数组。在这里,我们可以使用 JSON.stringify() 将它们转换为字符串并根据提供的正则表达式替换它们。

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

输出:

"123abcABCABC"

我们想删除除字母数字以外的所有内容,但这次我们有阿拉伯和英文字母。为了识别阿拉伯字母,我们必须使用 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"

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Angular 中上传文件

发布时间:2023/04/14 浏览次数:71 分类:Angular

本教程演示了如何在 Angular 中上传任何文件。我们还将介绍如何在文件上传时显示进度条,并在上传完成时显示文件上传完成消息。

Angular 2 中的复选框双向数据绑定

发布时间:2023/04/14 浏览次数:139 分类:Angular

本教程演示了如何一键标记两个复选框。这篇有 Angular 的文章将着眼于执行复选框双向数据绑定的不同方法。

在 AngularJs 中加载 spinner

发布时间:2023/04/14 浏览次数:107 分类:Angular

我们将介绍如何在请求加载时添加加载 spinner,并在 AngularJs 中加载数据时停止加载器。

在 Angular 中显示和隐藏

发布时间:2023/04/14 浏览次数:78 分类:Angular

本教程演示了 Angular 中的显示和隐藏。在开发商业应用程序时,我们需要根据用户角色或条件隐藏一些数据。我们必须根据该应用程序中的条件显示相同的数据。

在 Angular 中下载文件

发布时间:2023/04/14 浏览次数:104 分类:Angular

本教程演示了如何在 angular 中下载文件。我们将介绍如何通过单击按钮在 Angular 中下载文件并显示一个示例。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便