【问题标题】:Remove consecutive duplicate words javascript删除连续重复的单词javascript
【发布时间】:2016-03-23 00:38:13
【问题描述】:

我在删除重复单词但连续单词时遇到问题。我有来自 api 的字符串,如下所示;

var string='Girne Street No:1/2 Girne Girne KKTC KKTC'

我需要作为结果

Girne Street No:1/2 Girne KKTC

感谢您的帮助

【问题讨论】:

    标签: javascript jquery regex


    【解决方案1】:

    如果正则表达式不是强制性的:),那么试试

        var string='Girne Street No:1/2 Girne Girne KKTC KKTC';
        string = string.split(" ").filter(function(value,index,arr){ return value != arr[index+1];}).join(" ");
        document.body.innerHTML += string;

    【讨论】:

    • 我想知道......为什么这个解决方案没有赢得投票! +1。我相信正则表达式解决方案应该是最后的选择。
    • @Shafizadeh 谢谢,但它比 georg jsperf.com/regex-vs-split-filter-join-2 慢一点,但可以工作:)
    【解决方案2】:

    正则表达式解决方案是这样的:

    string = 'Girne Street No:1/2 Soğukçeşme Soğukçeşme Sokağı Sokağı'
    
    result = string.replace(/([^\wÇçĞğİıÖöŞşÜü]|^)([\wÇçĞğİıÖöŞşÜü]+)(?=[^\wÇçĞğİıÖöŞşÜü]+\2([^\wÇçĞğİıÖöŞşÜü]+|$))/g, '$1')
    
    document.write(result);

    【讨论】:

    • 酷模式.. +1
    • 感谢工作,但不适用于土耳其字符,需要编码
    【解决方案3】:

    也许是这样的?

    var str='Girne Street No:1/2 Girne Girne KKTC KKTC';
    var result = str.replace(/\b(\w+)\s+\1\b/g,'$1');
    console.log(result);
    

    【讨论】:

    • 感谢工作,但不适用于土耳其字符,需要编码
    • 您可以将 \w 替换为土耳其字母表:var str='İyiyim, teşekkür teşekkür ederim!'; var 结果 = str.replace(/\b([a,b,c,ç,d,e,f,g,ğ,h,i,ı,j,k,l,m,n,o,ö, p,r,s,ş,t,u,ü,v,y,z]+)\s+\1\b/g,'$1');控制台.log(结果); \w 表示 [A-z],拉丁符号
    猜你喜欢
    • 1970-01-01
    • 2019-11-29
    • 1970-01-01
    • 2014-03-31
    • 2018-12-01
    • 2021-03-03
    • 1970-01-01
    • 2020-03-30
    • 2013-10-28
    相关资源
    最近更新 更多