uso de JavaScript, tengo que comprobar si una cadena dada contiene una secuencia de letras repetidas, como este:cómo determinar si una cadena contiene una secuencia de letras repetidas
"aaaaa"
¿Cómo puedo hacer eso?
uso de JavaScript, tengo que comprobar si una cadena dada contiene una secuencia de letras repetidas, como este:cómo determinar si una cadena contiene una secuencia de letras repetidas
"aaaaa"
¿Cómo puedo hacer eso?
Se puede utilizar esta función:
function hasRepeatedLetters(str) {
var patt = /^([a-z])\1+$/;
var result = patt.test(str);
return result;
}
Porque [si lo ejecuto] (http://jsfiddle.net/Eric/3M8wx/embedded/result/), se produce un error. – Eric
¿qué debo hacer si es solo el mismo carácter repetido en la cadena simplemente "aaaaaaaaaaaa" y no "aadaa" – vetri02
@weblearner Ambos devolverán "verdadero". ¿Quieres que se comporte de manera diferente? – melhosseiny
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;
}
Luego puede verificar el resultado para obtener los caracteres repetidos y su frecuencia. si el resultado está vacío, no hay repetición allí.
Tenga en cuenta que el uso de la notación '[]' en cadenas no es compatible con algunos navegadores antiguos; en esos, use 'c = str.charAt (i)' en lugar de 'c = str [i]'. –
@ T.J.Crowder: gracias – wong2
utilizar expresiones regulares:
var hasDuplicates = (/([a-z])\1/i).test(str)
O si no se desea capturar aA
y los gustos
var hasDuplicates = (/([a-zA-Z])\1/).test(str)
O, si ha decidido que quiere aclarar su pregunta:
var hasDuplicates = (/^([a-zA-Z])\1+$/).test(str)
Trate de usar este
checkRepeat = function (str) {
var repeats = /(.)\1/;
return repeats.test(str)
}
Ejemplo de uso
if(checkRepeat ("aaaaaaaa"))
alert('Has Repeat!')
Esto comprobará si la cadena tiene repite más de dos veces:
function checkStr(str) {
str = str.replace(/\s+/g,"_");
return /(\S)(\1{2,})/g.test(str);
}
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);
Esto igualará devolver el número de r personajes repetidos también.
He resuelto que el uso de un bucle for , no con expresiones regulares
//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 \t
}
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))
¿Tiene que tener en cuenta casos válidos de repeticiones como doble L o doble C? – Dimitri
sí todos los lugares donde la letra se repite más de una vez – vetri02
¿Quiere saber si hay alguna? ¿O quieres saber qué son? – Eric