Javascript 如何删除';abc&x27;一串?
给定字符串“abc-acb-bac-bca-abc-cab-cab-cba-acb-abc-cab-bca-bca-bac-cba-cab-bca-abc”,如何删除除Javascript 如何删除';abc&x27;一串?,javascript,string,Javascript,String,给定字符串“abc-acb-bac-bca-abc-cab-cab-cba-acb-abc-cab-bca-bca-bac-cba-cab-bca-abc”,如何删除除abc和acb中的一个之外的所有多个匹配项 var str='abc acb bac bca abc cab cba acb abc cab bca bca bac cba cab bca abc remove('abc-acb-bac-bca-abc-cab-cab-cba-acb-abc-cab-bca-bca-bac-cba
abc
和acb
中的一个之外的所有多个匹配项
var str='abc acb bac bca abc cab cba acb abc cab bca bca bac cba cab bca abc
remove('abc-acb-bac-bca-abc-cab-cab-cba-acb-abc-cab-bca-bca-bac-cba-cab-bca-abc')
//=> 'abc-acb-bac-bca-cab-cba'
我看到了,但它只处理重复的字母,我想针对特定的子字符串。拆分破折号上的字符串,创建一个由每个条目设置关键帧的映射,从映射中获取所有关键帧的数组并将它们连接起来
function remove(str) {
var map = {};
str.split('-').forEach(
piece => map[piece] = true
);
return Object.keys(map).join('-');
}
拆分破折号上的字符串,创建一个由每个条目设置关键帧的映射,从映射中获取所有关键帧的数组并将它们连接起来
function remove(str) {
var map = {};
str.split('-').forEach(
piece => map[piece] = true
);
return Object.keys(map).join('-');
}
我建议使用--组合,使用普通JavaScript对象存储到目前为止遇到的一组子字符串('abc'
,'bac'
,等等),并在发现重复时从过滤器返回false
,以便从结果中忽略它们
这还具有相对于字符串长度的线性(O(n))时间运行的额外好处,而大多数使用indexOf
的解决方案运行的复杂度要低得多,即O(n2)
函数删除(字符串){
返回字符串.split('-').filter(函数(e){
return!this[e]&(this[e]=true)
},{}.join('-'))
}
console.log(remove('abc-acb-bac-bca-abc-cab-cba-acb-abc-cab-bca-bca-bca-bac-cba-cab-bca-abc')
我建议使用一个--组合,使用一个普通的JavaScript对象来存储到目前为止遇到的一组子字符串('abc'
,'bac'
,等等),当发现重复时,从过滤器返回false
,以便从结果中忽略它们
这还具有相对于字符串长度的线性(O(n))时间运行的额外好处,而大多数使用indexOf
的解决方案运行的复杂度要低得多,即O(n2)
函数删除(字符串){
返回字符串.split('-').filter(函数(e){
return!this[e]&(this[e]=true)
},{}.join('-'))
}
console.log(删除('abc-acb-bac-bca-abc-cab-cab-cba-acb-abc-cab-bca-bca-bca-bca-bca'))
我们可以将字符串拆分成一个数组,分隔符为-
字符,然后在数组中查找唯一的元素。然后简单地将数组连接回字符串中,分隔符为-
//用于获取唯一元素的函数
Array.prototype.getUnique=函数(){
var n=[];
for(var i=0;i console.log(arrUniq.join('-')
我们可以将字符串拆分成一个数组,分隔符为-
字符,然后在数组中找到唯一的元素。然后简单地将数组连接回字符串中,分隔符为-
//用于获取唯一元素的函数
Array.prototype.getUnique=函数(){
var n=[];
for(var i=0;i
使用split('-')
删除所有连字符,使用filter()
和indexOf()
方法返回每个元素中的一个(所有元素都像ES6集合一样唯一)
仅仅提到ES6集合就让我想起了一种从数组中提取唯一值的更简单方法。请参阅代码片段2
片段1
const str=`abc acb bac bca abc cab cba acb abc cab bca bca bac cba cab bca abc`;
//在每个连字符上使用拆分
常量arr=str.split('-');
//将arr传递到函数。。。
功能阵列(arr){
//用…的结果过滤arr。。。
返回arr.filter(函数(ele、idx、arr){
/*…当前对象的索引
||对于每个迭代,只返回
||如果它与当前索引匹配
*/
返回arr.indexOf(ele)==idx;
});
}
常数res=arrayUnique(arr);
控制台日志(res)
使用split('-')
删除所有连字符,使用filter()
和indexOf()
方法返回每个元素中的一个(所有元素都像ES6集合一样唯一)
仅仅提到ES6集合就让我想起了一种从数组中提取唯一值的更简单方法。请参阅代码片段2
片段1
const str=`abc acb bac bca abc cab cba acb abc cab bca bca bac cba cab bca abc`;
//在每个连字符上使用拆分
常量arr=str.split('-');
//将arr传递到函数。。。
功能阵列(arr){
//用…的结果过滤arr。。。
返回arr.filter(函数(ele、idx、arr){
/*…当前对象的索引
||对于每个迭代,只返回
||如果它与当前索引匹配
*/
返回arr.indexOf(ele)==idx;
});
}
常数res=arrayUnique(arr);
控制台日志(res)代码>纯javascript强>
var str='abc acb bac bca abc cab cba acb abc cab bca bca bac cba cab bca abc;
str=str.split('-');
uniqueArray=str.filter(函数(项目、位置){
返回str.indexOf(item)==pos;
})
str=uniqueArray.join('-');
console.log(str)代码>纯javascript强>
var str='abc acb bac bca abc cab cba acb abc cab bca bca bac cba cab bca abc;
str=str.split('-');
uniqueArray=str.filter(函数(项目、位置){
返回str.indexOf(item)==pos;
})
str=uniqueArray.join('-');
console.log(str)代码>此Regex
解决了您的问题:
/(\b\w+\b)-(?=.*\1)/g
使用类似于:
f