Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

291
Views
Texto mecanografiado: buscar palabras en una cadena

Hay muchas opciones en javascript, pero hay opciones en mecanografiado para buscar palabras en una cadena determinada:

Por ejemplo :

Para la lista: ['Mr', 'Mrs', 'FM.', 'Sir'] y una cadena llamada 'Sir FM. Sam Manekshaw' . Tengo las palabras ' Señor ' y ' FM '. presente, por lo tanto, debe asignarse a una cadena y las partes restantes de la cadena deben asignarse a otra cadena. es decir:

 a = Sir FM. b = Sam Manekshaw

NOTA : Debe validar solo palabras completas y no una subcadena.

ACTUALIZACIÓN : Lo que probé:

 var tempPrefixList = ['Mr', 'Mrs', 'FM.', 'Sir']; var firstName = "Sir FM. Sam Manekshaw"; var prefixSearchExp = new RegExp(tempPrefixList.join("|"),"gi"); if(firstName && prefixSearchExp.test(firstName)) { console.log("Caught"); var requestFirstNameSplit = firstName?.split(" "); console.log("Prefix: " + requestFirstNameSplit[0]); console.log("First name: " + requestFirstNameSplit[1]); }

Pero esto considera solo si el nombre tiene un prefijo. Y además, solo tiene un nombre en firstName. Por ejemplo: Sir Sam . Pero no funciona para el ejemplo que mencioné anteriormente.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Puedes resolverlo así:

 class PersonDetails { formOfAddress: string; name: string; constructor(formOfAddress: string, name: string) { this.formOfAddress = formOfAddress; this.name = name; } get fullName(): string { return [this.formOfAddress, this.name].join(' '); } } function extractPersonDetailsFromFullName(fullName: string): PersonDetails { const formOfAddresses = ['Mr', 'Mrs', 'FM.', 'Sir']; let usedFormOfAddresses = []; const wordsInName = fullName.split(' ').filter((x) => x); for (const word of wordsInName ?? []) { if (formOfAddresses.filter((foa) => foa == word).length == 1) { usedFormOfAddresses.push(word); } } const formOfAddress = usedFormOfAddresses.join(' '); return new PersonDetails( formOfAddress, fullName.substr(formOfAddress.length).trim() ); } const testNames = ['Sir FM. Sam Manekshaw', 'Mr Tom']; for (const testName of testNames) { const personDetails = extractPersonDetailsFromFullName(testName); appDiv.innerHTML += testName + ' => <br>&nbsp;&nbsp;' + JSON.stringify(personDetails) + '<br><br>'; }

Código: https://stackblitz.com/edit/typescript-iyk3ul?file=index.ts

Si no quiere usar la implementación con la función y el objeto separados, puede usar el siguiente código:

 const fullName = 'Sir FM. Sam Manekshaw'; const formOfAddresses = ['Mr', 'Mrs', 'FM.', 'Sir']; let formOfAddressParts = []; let nameParts = []; const wordsInName = fullName.split(' ').filter((x) => x); for (const word of wordsInName ?? []) { if (formOfAddresses.filter((foa) => foa == word).length == 1) { formOfAddressParts.push(word); } else { nameParts.push(word); } } let formOfAddress = formOfAddressParts.join(' '); let name = nameParts.join(' '); console.log('formOfAddress: ', formOfAddress); console.log('name: ', name);
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!