使用JS找出字符串中字符重复的最简单方法是什么?

时间:2015-02-27 19:00:32

标签: javascript jquery string

我有一个由7位数字组成的字符串,我需要一个函数,如果通过重复2位数创建的字符串返回“true”,如:

check('9669669');  // true
check('0000001');  // true
check('5555555');  // false
check('1111123');  // false

我想知道最简单的方法。 感谢。

2 个答案:

答案 0 :(得分:2)

这样的东西应该可以工作,在数组中推送独特的字符,并检查它的长度是否为2

function check(str) {
    var arr = [], i = 0, parts = str.split('');

    for (var j=0; j<parts.length; j++) {
        if (arr.indexOf(parts[j]) === -1) arr.push(parts[j]);
    }

    return arr.length === 2;
}

FIDDLE

或更多花哨

function check(str) {
    return str.split('').reduce(function(p, c) {
        if (p.indexOf(c) < 0) p.push(c); return p;
    }, []).length === 2;
}

答案 1 :(得分:2)

您可以全局替换第一个字符,两次。

function check2(str){
    var fun= function(s){
        return s.replace(RegExp(s.charAt(0), 'g'), '')
    };
    str= fun(str);
    return !!(str && fun(str)=== '');
}

var A = [&#39; 9669669&#39;,&#39; 0000001&#39;,&#39; 5555555&#39;,&#39; 1111123&#39;];

<强> A.map(CHECK2);

/ *返回值:(数组)[true,true,false,false] * /