J'essaie de comprendre l'expression régulière qui correspondra à n'importe quel caractère qui n'est pas une lettre ou un nombre. Ainsi des caractères tels que (,, @, £, () etc ...
Une fois trouvé, je veux le remplacer par un espace vide.
Aucun conseil.
javascript
regex
James Jeffery
la source
la source
\w
est pour les caractères Word et est exactement le même que[a-zA-Z0-9_]
(notez que le trait de soulignement est considéré comme un caractère de mot.) ... donc le raccourci seraitstr.replace(/[^\w]/g, ' ')
Cette expression régulière correspond à tout ce qui n'est pas une lettre, un chiffre ou un caractère de soulignement (
_
).Par exemple en JavaScript:
la source
Tu recherches:
Cela remplace tous les caractères non alphanumériques par un espace.
Le "g" à la fin remplace toutes les occurrences.
Au lieu de spécifier az ( en minuscules) et AZ (majuscules) , vous pouvez également utiliser l'en-sensible à la casse Option:
/[^a-z0-9]/gi
.la source
C'est bien trop tard, mais comme il n'y a pas de réponse acceptée, j'aimerais fournir ce que je pense être la plus simple: \ D - correspond à tous les caractères non numériques.
Résultats en x: "12323525"
Voir https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
la source
essayez de faire str.replace (/ [^ \ w] /); Il remplacera tous les non-alphabets et les nombres de votre chaîne!
Modifier 1:
str.replace(/[^\w]/g, ' ')
la source
str.replace(/[^\w]/g, ' ')
. Si vous n'incluez pas le/g
drapeau, il ne remplacera que la première occurrence. Et si vous ne définissez pas de chaîne de remplacement, ici un espace vide' '
, il sera remplacé parundefined
partout. Enfin, les traits de soulignement ne seront pas remplacés car ils correspondent\w
. Cette réponse ne convient pas parfaitement./[A-Z]/ig
/[^A-Z]/ig
/[0-9]/g
ou/\d+/g
/[^0-9]/g
ou/\D+/g
/[^A-Z0-9]/ig
Il existe d'autres modèles possibles
la source
Juste pour que les autres le voient:
supprime tous les caractères Unicode non alphabétiques et non numériques.
La source
la source
replaceAll
, et les\p{..}
échappements de propriété ne sont pas largement implémentés.Avez-vous essayé,
str = str.replace(/\W|_/g,'');
il retournera une chaîne sans aucun caractère et vous pouvez spécifier si un caractère spécial après la barre de tube|
pour les attraper également.var str = "1324567890abc§$)% John Doe #$@'.replace(/\W|_/g, '');
il reviendrastr = 1324567890abcJohnDoe
ou recherchez des chiffres et des lettres et remplacez-les par une chaîne vide (""):
var str = "1324567890abc§$)% John Doe #$@".replace(/\w|_/g, '');
il reviendrastr = '§$)% #$@';
la source
Pour faire correspondre autre chose qu'une lettre ou un chiffre ou une lettre avec des signes diacritiques comme
é
vous pouvez essayer ceci:Et pour remplacer:
Inspiré du premier article avec prise en charge des signes diacritiques
la source
la source