Alguém sabe resolver?
Tudo bem pessoal? então tem um probleminha no meu código e eu não consigo solucionar:
é assim, é uma caixa de formulário que filtra somente os números de telefone:
Por exemplo se eu colocar nela o seguinte conteúdo: valido | outro | invalido (99)985292963 valido | outro | invalido (99)985292963 valido | outro | invalido (99)985292963 valido | outro | invalido (99)985292963
ele vai filtrar assim: (99)98529-2963 /(99)98529-2963 /(99)98529-2963 /(99)98529-2963
Até ai tudo bem, mas se eu colocar um conteúdo que tenha outros números separados sem ser o de telefone ele nao filtra, ele apaga tudo.
exemplo: (99)98529-2963 n chama 2 vezes/ (99)98529-2963 caixa postal 2 vezes /
Em vez de ele apagar o numero 2 que não é em formato de telefone ele exclui tudo.
Então eu queria que vocês me ajudassem nessa questão, se tiver numero separado sem ser no formato de telefone, tanto celular e fixo ele apagasse esses numeros e deixasse somente os de telefone...
tem como?
<script>
function filtrarNumeros() {
var value = $('#areaFiltro').val();
var caracteresValidos = /[^0-9()-]/gi;
var cont = 0;
var space = document.createTextNode("\u00A0");
var res = value.split('(');
var numerosInvalidos = [];
var numerosValidos = [];
for(var t = 0; t<res.length; t++){
res[t] = "("+res[t];
if(res[t].length == 14) {
res1 = res[t].slice(0,10);
res2 = res[t].slice(10,14);
console.log(res[t].slice(9,10) );
if(res[t].slice(9,10) == '-') {
numerosValidos.push(res1 + res2);
}else {
numerosValidos.push(res1 + '-' + res2);
}
}
else if(res[t].length == 13) {
res1 = res[t].slice(0,9);
res2 = res[t].slice(9,13);
console.log(res[t].slice(8,9) );
if(res[t].slice(8,9) == '-') {
numerosValidos.push(res1 + res2);
}else {
numerosValidos.push(res1 + '-' + res2);
}
}
else if(res[t].length == 12) {
res1 = res[t].slice(0,8);
res2 = res[t].slice(8,12);
console.log(res[t].slice(7,8) );
if(res[t].slice(7,8) == '-') {
numerosValidos.push(res1 + res2);
}else {
numerosValidos.push(res1 + '-' + res2);
}
}
/*
else if(res[t].length == 9) {
res1 = res[t].slice(0,5);
res2 = res[t].slice(5,9);
console.log(res1+'-'+res2);
}
else if(res[t].length == 8) {
res1 = res[t].slice(0,4);
res2 = res[t].slice(4,8);
console.log(res1+'-'+res2);
}*/
else{
numerosInvalidos.push(res[t]);
//swal("Ops","Algum dado está errado no filtro, Verifique e tente novamente","warning");
}
}
console.log('Inválido:', numerosInvalidos);
console.log('Válido:', numerosValidos);
if(caracteresValidos.test(value) || !caracteresValidos.test(value)){
value = value.replace(caracteresValidos, "");
for(var x=0; x<value.length;x++){
if(value[x] == ')'){
cont = cont + 1;
}
}
//document.getElementById("areaFiltro").value = value;
document.getElementById("areaFiltro").value = numerosValidos;
document.getElementById("areaFiltro").focus();
document.getElementById("areaFiltro").select();
document.getElementById("btnCopiar").disabled = false;
$("#btnCopiar").click(function(){
$("textarea").select();
document.execCommand('copy');
});
document.getElementById("rowTotal").hidden = false;
document.getElementById("cont").value = cont;
}
if(value == '') {
console.log(caracteresValidos.test(value));
swal("Ops!", "Preencha o campo!", "warning")
}
}
</script>
--}}
<script>
function filtrarNumeros() {
var value = $('#areaFiltro').val();
var caracteresValidos = /[^0-9()-]/gi;
var cont = 0;
if (caracteresValidos.test(value) || !caracteresValidos.test(value)) {
value = value.replace(caracteresValidos, "");
for (var x = 0; x < value.length; x++) {
if (value[x] == ')') {
cont = cont + 1;
}
}
/////
var res = value.split('(');
var numerosInvalidos = [];
var numerosValidos = [];
for (var t = 0; t < res.length; t++) {
res[t] = "(" + res[t];
if (res[t].length == 14) {
res1 = res[t].slice(0, 10);
res2 = res[t].slice(10, 14);
console.log(res[t].slice(9, 10));
if (res[t].slice(9, 10) == '-') {
numerosValidos.push(res1 + res2 + " ");
} else {
numerosValidos.push(res1 + '-' + res2 + " ");
}
}
else if (res[t].length == 13) {
res1 = res[t].slice(0, 9);
res2 = res[t].slice(9, 13);
console.log(res[t].slice(8, 9));
if (res[t].slice(8, 9) == '-') {
numerosValidos.push(res1 + res2 + " ");
} else {
numerosValidos.push(res1 + '-' + res2 + " ");
}
}
else if (res[t].length == 12) {
res1 = res[t].slice(0, 8);
res2 = res[t].slice(8, 12);
console.log(res[t].slice(7, 8));
if (res[t].slice(7, 8) == '-') {
numerosValidos.push(res1 + res2 + " ");
} else {
numerosValidos.push(res1 + '-' + res2 + " ");
}
}
/*
else if(res[t].length == 9) {
res1 = res[t].slice(0,5);
res2 = res[t].slice(5,9);
console.log(res1+'-'+res2);
}
else if(res[t].length == 8) {
res1 = res[t].slice(0,4);
res2 = res[t].slice(4,8);
console.log(res1+'-'+res2);
}*/
else {
numerosInvalidos.push(res[t]);
//swal("Ops","Algum dado está errado no filtro, verifique e tente novamente","warning");
}
}
//console.log('Inválido:', numerosInvalidos);
//console.log('Válido:', numerosValidos);
///////////
document.getElementById("areaFiltro").value = numerosValidos.join('/');
document.getElementById("areaFiltro").focus();
document.getElementById("areaFiltro").select();
document.getElementById("btnCopiar").disabled = false;
$("#btnCopiar").click(function () {
$("textarea").select();
document.execCommand('copy');
});
document.getElementById("rowTotal").hidden = false;
document.getElementById("cont").value = cont;
}
if (value == '') {
console.log(caracteresValidos.test(value));
swal("Ops!", "Preencha o campo!", "warning")
}
}
</script>Discussão (2)
Carregando comentários...