Estou tentando descobrir a expressão regular que corresponderá a qualquer caractere que não seja uma letra ou um número. Portanto, caracteres como (,, @, £, () etc ...
Uma vez encontrado, quero substituí-lo por um espaço em branco.
Qualquer conselho.
javascript
regex
James Jeffery
fonte
fonte
\w
é para caracteres do Word e é exatamente o mesmo que[a-zA-Z0-9_]
(observe que o sublinhado é considerado um caractere do word.) ... então a abreviação seriastr.replace(/[^\w]/g, ' ')
Esta expressão regular corresponde a qualquer coisa que não seja uma letra, dígito ou um caractere de sublinhado (
_
).Por exemplo em JavaScript:
fonte
Você está procurando por:
Isso substitui todos os caracteres não alfanuméricos por um espaço.
O "g" no final substitui todas as ocorrências.
Em vez de especificar az (minúsculas) e AZ (maiúsculas), você também pode usar a in-case-sensitive opção:
/[^a-z0-9]/gi
.fonte
Isso é tarde demais, mas como não há uma resposta aceita, gostaria de fornecer o que considero o mais simples: \ D - corresponde a todos os caracteres não dígitos.
Resultados em x: "12323525"
Consulte https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
fonte
tente fazer str.replace (/ [^ \ w] /); Ele substituirá todos os não alfabetos e números de sua string!
Editar 1:
str.replace(/[^\w]/g, ' ')
fonte
str.replace(/[^\w]/g, ' ')
. Se você não incluir o/g
sinalizador, ele substituirá apenas a primeira ocorrência. E se você não definir uma string de substituição, aqui um espaço em branco' '
, ele será substituído porundefined
todos os lugares. Por fim, os sublinhados não serão substituídos porque correspondem\w
. Essa resposta não se encaixa perfeitamente.Apenas para que outros vejam:
irá remover quaisquer caracteres Unicode que não sejam letras e não numéricos.
Fonte
fonte
replaceAll
, e os\p{..}
escapes de propriedade não são amplamente implementados./[A-Z]/ig
/[^A-Z]/ig
/[0-9]/g
ou/\d+/g
/[^0-9]/g
ou/\D+/g
/[^A-Z0-9]/ig
Existem outros padrões possíveis
fonte
Se você já tentou,
str = str.replace(/\W|_/g,'');
ele retornará uma string sem qualquer caractere e você pode especificar se algum caractere especial após a barra vertical|
para capturá-los também.var str = "1324567890abc§$)% John Doe #$@'.replace(/\W|_/g, '');
vai voltarstr = 1324567890abcJohnDoe
ou procure dígitos e letras e substitua-os por uma string vazia (""):
var str = "1324567890abc§$)% John Doe #$@".replace(/\w|_/g, '');
vai voltarstr = '§$)% #$@';
fonte
Para combinar qualquer coisa diferente de letra, número ou letra com diacríticos como
é
você pode tentar isto:E para substituir:
Inspirado na postagem principal com suporte para diacríticos
fonte
fonte