📜  正则表达式删除重复项 - Javascript (1)

📅  最后修改于: 2023-12-03 15:10:58.001000             🧑  作者: Mango

正则表达式删除重复项 - Javascript

介绍

在开发过程中,我们经常会遇到需要从数组或字符串中去掉重复项的情况。在Javascript中,我们可以使用正则表达式来实现这个操作。本文将介绍如何使用正则表达式去除数组或字符串中的重复项。

去除数组中的重复项
使用Set

Javascript中有一种数据结构叫Set,它可以存储非重复的值。我们可以通过将数组转换为Set,再将Set转换回数组来去除数组中的重复项。

const arr = [1, 2, 2, 3, 3, 4, 5, 5];
const uniqueArr = [...new Set(arr)];

以上代码中的[...new Set(arr)]先将数组arr转换为Set,并使用[... ]将Set转换回数组。

使用正则表达式

我们也可以使用正则表达式来去除数组中的重复项。以下代码中,使用了replace方法,并传入一个正则表达式和一个回调函数,回调函数返回值将替换正则表达式匹配到的内容。

const arr = [1, 2, 2, 3, 3, 4, 5, 5];
const uniqueArr = arr.join(',').replace(/(\b\d+\b)(?=.*\b\1\b)/g, '').split(',');

以上代码中的正则表达式,使用了正则表达式的零宽断言和反向引用,\b表示单词边界,\d+表示数字,.*?表示任意字符(非贪婪模式),\1引用了第一个捕获组的值。

去除字符串中的重复项
使用正则表达式

我们可以使用正则表达式来去除字符串中的重复项。以下代码中,使用了replace方法,并传入一个正则表达式和一个回调函数,回调函数返回值将替换正则表达式匹配到的内容。

const str = 'abcdaefdaaghi';
const uniqueStr = str.replace(/(\w)(?=.*\1)/g, '');

以上代码中的正则表达式,使用了正则表达式的零宽断言和反向引用,\w表示单词字符,.*?表示任意字符(非贪婪模式),\1引用了第一个捕获组的值。

总结

本文介绍了如何使用正则表达式来去除Javascript数组或字符串中的重复项。使用Set的方法简单易懂,但使用正则表达式的方法可以更加灵活地去除重复项,可以改变正则表达式来适应不同的场景。