Sto cercando di capire l'espressione regolare che corrisponderà a qualsiasi carattere che non sia una lettera o un numero. Quindi caratteri come (,, @, £, () ecc ...
Una volta trovato, voglio sostituirlo con uno spazio vuoto.
Qualche consiglio.
Sto cercando di capire l'espressione regolare che corrisponderà a qualsiasi carattere che non sia una lettera o un numero. Quindi caratteri come (,, @, £, () ecc ...
Una volta trovato, voglio sostituirlo con uno spazio vuoto.
Qualche consiglio.
Risposte:
Per abbinare qualcosa di diverso dalla lettera o dal numero potresti provare questo:
[^a-zA-Z0-9]
E per sostituire:
var str = 'dfj,dsf7lfsd .sdklfj';
str = str.replace(/[^A-Za-z0-9]/g, ' ');
Questa espressione regolare corrisponde a tutto ciò che non è una lettera, una cifra o un carattere di sottolineatura ( _).
\W
Ad esempio in JavaScript:
"(,,@,£,() asdf 345345".replace(/\W/g, ' '); // Output: " asdf 345345"
Stai cercando:
var yourVar = '1324567890abc§$)%';
yourVar = yourVar.replace(/[^a-zA-Z0-9]/g, ' ');
Sostituisce tutti i caratteri non alfanumerici con uno spazio.
La "g" alla fine sostituisce tutte le occorrenze.
Invece di specificare az (minuscolo) e AZ (maiuscolo) è anche possibile utilizzare l'in-sensitive-opzione: /[^a-z0-9]/gi.
Questo è decisamente troppo tardi, ma poiché non esiste una risposta accettata, vorrei fornire quella che penso sia la più semplice: \ D - corrisponde a tutti i caratteri non numerici.
var x = "123 235-25%";
x.replace(/\D/g, '');
Risultati in x: "12323525"
Vedi https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
prova a fare str.replace (/ [^ \ w] /); Sostituirà tutti i non alfabeti e numeri dalla tua stringa!
Modifica 1: str.replace(/[^\w]/g, ' ')
str.replace(/[^\w]/g, ' '). Se non includi /gflag, sostituirà solo la prima occorrenza. E se non si definisce una stringa di sostituzione, qui uno spazio vuoto ' ', sostituirà undefineddappertutto. Infine, i trattini bassi non verranno sostituiti perché corrispondono \w. Questa risposta non è perfetta.
Solo perché gli altri possano vedere:
someString.replaceAll("([^\\p{L}\\p{N}])", " ");
rimuoverà tutti i caratteri Unicode non alfabetici e non numerici.
replaceAll, e gli \p{..}escape di proprietà non sono ampiamente implementati.
/[A-Z]/ig/[^A-Z]/ig/[0-9]/go/\d+/g/[^0-9]/go/\D+/g/[^A-Z0-9]/igCi sono altri possibili modelli
Hai provato str = str.replace(/\W|_/g,'');restituirà una stringa senza alcun carattere e puoi specificare se qualsiasi carattere speciale dopo la barra del tubo |per catturarli.
var str = "1324567890abc§$)% John Doe #$@'.replace(/\W|_/g, ''); tornerà str = 1324567890abcJohnDoe
oppure cerca cifre e lettere e sostituiscile con una stringa vuota (""):
var str = "1324567890abc§$)% John Doe #$@".replace(/\w|_/g, ''); tornerà str = '§$)% #$@';
Per abbinare qualcosa di diverso da una lettera o un numero o una lettera con segni diacritici come épotresti provare questo:
[^\wÀ-úÀ-ÿ]
E per sostituire:
var str = 'dfj,dsf7é@lfsd .sdklfàj1';
str = str.replace(/[^\wÀ-úÀ-ÿ]/g, '_');
Ispirato al primo post con supporto per segni diacritici
\wè per i caratteri di Word ed è esattamente lo stesso di[a-zA-Z0-9_](notare che il trattino basso è considerato un carattere di parola.) ... quindi la stenografia sarebbestr.replace(/[^\w]/g, ' ')