Eliminarea caracterelor dintr-un șir de caractere (Programare, Javascript, String)

Skizit a intrebat.

Care sunt diferitele moduri în care pot elimina caractere dintr-un șir de caractere în JavaScript?

Comentarii

  • Răspunsul la întrebarea dumneavoastră? Cum pot elimina un caracter dintr-un șir de caractere folosind Javascript? –  > Por Michael Freidgeim.
5 răspunsuri
Dave Ward

Folosind replace() cu expresii regulate este cea mai flexibilă/puternică. Este, de asemenea, singura modalitate de a înlocui la nivel global fiecare instanță a unui model de căutare în JavaScript. Varianta non-regex a replace() va înlocui doar prima instanță.

De exemplu:

var str = "foo gar gaz";

// returns: "foo bar gaz"
str.replace('g', 'b');

// returns: "foo bar baz"
str = str.replace(/g/gi, 'b');

În acest ultim exemplu, se va înlocui /gi indică insensibilitatea la majuscule și înlocuirea globală (ceea ce înseamnă că nu doar prima instanță trebuie înlocuită), ceea ce este ceea ce doriți de obicei atunci când înlocuiți în șiruri de caractere.

La eliminați caractere, utilizați un șir gol ca înlocuitor:

var str = "foo bar baz";

// returns: "foo r z"
str.replace(/ba/gi, '');

Comentarii

  • Bun răspuns. Apropo, str.replace('g', 'b'); nu funcționează de la sine. Folosind str = str.replace('g', 'b'); ar face ca răspunsul să fie mai bun. –  > Por Yuci.
Kamil Kiełczewski

ONELINER care elimină caracterele LISTĂ (mai multe deodată) – de exemplu elimină +,-, ,(,) din numărul de telefon:

var str = "+(48) 123-456-789".replace(/[-+()s]/g, '');  // result: "48123456789"

Utilizăm expresia regulată [-+()s] în care punem caracterele nedorite între [ și ]

(simbolul „s” este un caracter de scăpare a caracterului ‘spațiu’ – pentru mai multe informații, căutați pe Google ‘character escapes in in regexp’)

Comentarii

  • Puteți obține același rezultat în ceea ce privește exemplul cu numărul de telefon cu un regexp mai simplu și mai puternic: var str = "+(48) 123-456-789".replace(/[D]/g, ''); // result: "48123456789" –  > Por Stefano Coletta.
atamata

Știu că este vechi, dar dacă faceți o divizare și apoi o alăturare, aceasta va elimina toate aparițiile unui anumit caracter, de ex:

var str = theText.split('A').join('')

va elimina toate aparițiile lui „A” din șirul de caractere, evident, nu ține cont de majuscule și minuscule.

Comentarii

  • Aceasta nu este o funcție in-place, așa că trebuie să faceți theText = theText.split('A').join('') pentru ca aceasta să funcționeze. Această comandă este deosebit de utilă pentru caracterele ciudate, cum ar fi parantezele. –  > Por cameronroytaylor.
  • Actualizat în funcție de comentariul dvs. –  > Por atamata.
Nazariy

Puteți folosi replace funcția replace.

str.replace(regexp|substr, newSubstr|function)

Nicholas Koskowski

O altă metodă despre care nimeni nu a vorbit până acum este metoda substr pentru a produce șiruri dintr-un alt șir… acest lucru este util dacă șirul dvs. are o lungime definită și caracterele pe care le eliminați se află la ambele capete ale șirului… sau în cadrul unei „dimensiuni statice” a șirului.