我有一个由7位数字组成的字符串,我需要一个函数,如果通过重复2位数创建的字符串返回“true”,如:
check('9669669'); // true
check('0000001'); // true
check('5555555'); // false
check('1111123'); // false
我想知道最简单的方法。 感谢。
答案 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;
}
或更多花哨
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] * /