Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

163
Vistas
Matching the search exactly

I'm trying to use app script to give access to my Google sheet by searching through a webpage. so I don't have to give all the data. the search is based on a specific column and the result can be repeatable on the column itself but the other columns of the same row like price and item are different. with my current code if the user searched part of the name or even one letter the results will be all the data containing this letter .. how do I show the data only if it matched with the input from the user.. so I can avoid someone writing the letters from a to z to collect all the data.

function doGet(e) {
  
  return HtmlService.createTemplateFromFile("Index").evaluate()
  .setTitle("WebApp: Search By Password")
  .addMetaTag('viewport', 'width=device-width, initial-scale=1')
  .setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
}


/* PROCESS FORM */
function processForm(formObject){ 
  var concat = formObject.searchtext;
  var result = "";
  if(concat){//Execute if form passes search text
      result = search(concat);
  }
  return result;
}


function search(searchtext = 'searchtext') {
  let ar = [];
 var spreadsheetId   = '1aN8VLL4iKhGjmM84qhncG9cQfKigCWscMT-UkdzNhQs'; 
  const names = ['Data', 'Data2'];
  names.forEach((name) => {
    var range = SpreadsheetApp.getActive().getSheetByName(name).getDataRange();
    var data = range.getValues();
    data.forEach(function (f) {
    if (~[f[0]].toString().toLowerCase().indexOf(searchtext)) {
      ar.push([f[0],f[1],f[2],f[3],f[4],f[5],f[6],f[7],f[8],f[9]]);
      }
      
    });
  });
  return ar;
};

my coding knowledge is basic so can you help me

thanks a lot

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

In order to provide a proper response to the question, I'm writing this answer as a community wiki since the issue was resolved from the comments section.

Changing ~[f[0]].toString().toLowerCase().indexOf(searchtext) to f[0] === searchtext would work but as you mentioned in comments, it worked for names but no for numbers.

In this case try changing it to f[0] == searchtext. Just to give context, using == checks if values are equal while === checks if both type and value match. To give you an example and I imagine this is happening in your case, '1' === 1 will not match because they're not the same type.

References:

Equality (==)

Strict equality (===)

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda