11
votes

Comment déterminer si une chaîne contient une séquence de lettres répétées

Utilisation JavaScript, je dois vérifier si une chaîne donnée contient une séquence de lettres répétées, comme celle-ci:

"aaaaa"

Comment puis-je faire ça?


3 commentaires

Devez-vous envisager des cas de répétition valables comme Double L ou Double C?


oui tous les endroits où la lettre se répète plus d'une fois


Est-ce que tout ce que vous voulez savoir s'il y en a? Ou voulez-vous savoir ce qu'ils sont?


7 Réponses :


2
votes
function check(str) {
    var tmp = {};
    for(var i = str.length-1; i >= 0; i--) {
        var c = str.charAt(i);
        if(c in tmp) {
            tmp[c] += 1;
        }
        else {
            tmp[c] = 1;
        }
    }
    var result = {};
    for(c in tmp) {
        if(tmp.hasOwnProperty(c)) {
            if(tmp[c] > 1){
                result[c] = tmp[c];
            }
        }
    }
    return result;
}
then you can check the result to get the repeated chars and their frequency. if result is empty, there is no repeating there.

1 commentaires

Notez que l'utilisation de [] la notation sur les chaînes n'est pas prise en charge sur certains navigateurs plus anciens; Sur ceux-ci, utilisez c = str.charat (i) plutôt que c = str [i] .



14
votes

Vous pouvez utiliser cette fonction: xxx


4 commentaires

Parce que si je l'exécute , les erreurs informatiques.


Que dois-je faire si c'est juste le même personnage répété à travers la chaîne juste "aaaaaaaaaaaa" et non "Aadaa"


@weeNearner les deux retourneront true . Voulez-vous qu'il se comporte différemment?


Oui, ça ne devrait me procurer que si la chaîne entière seulement un personnage répété



13
votes

Utilisez des expressions régulières: xxx

ou si vous ne voulez pas attraper aa et les goûts xxx

ou, si vous avez décidé que vous souhaitez clarifier votre question: xxx


0 commentaires

3
votes

Essayez d'utiliser cette

if(checkRepeat ("aaaaaaaa"))
alert('Has Repeat!')


0 commentaires

1
votes

Ceci vérifiera si la chaîne a répété plus de deux fois:

function checkStr(str) {
    str = str.replace(/\s+/g,"_");
    return /(\S)(\1{2,})/g.test(str);
}


0 commentaires

0
votes
var char = "abcbdf..,,ddd,,,d,,,";
var tempArry={};

for (var i=0; i < char.length; i++) {
    if (tempArry[char[i]]) {
        tempArry[char[i]].push(char[i]);
    } else {
        tempArry[char[i]] = [];
        tempArry[char[i]].push(char[i]);
    }
}

console.log(tempArry);
This will even return the number of repeated characters also.

0 commentaires

1
votes

J'ai résolu que l'utilisation d'une boucle pour la boucle, non pas avec une regex forte>

p>

//This check if a string has 3 repeated letters, if yes return true, instead return false
//If you want more than 3 to check just add another validation in the if check

function stringCheck (string) {
    for (var i = 0; i < string.length; i++)
        if (string[i]===string[i+1] && string[i+1]===string[i+2]) 
            return true
    
    return false 	
}
var str1 = "hello word" //expected false
var str2 = "helllo word" //expredted true
var str3 = "123 blAAbA" //exprected false
var str4 = "hahaha haaa" //exprected true

console.log(str1, "<==", stringCheck(str1))
console.log(str2, "<==", stringCheck(str2))
console.log(str3, "<==", stringCheck(str3))
console.log(str4, "<==", stringCheck(str4))


0 commentaires