Estoy tratando de averiguar la expresión regular que coincidirá con cualquier carácter que no sea una letra o un número. Entonces, caracteres como (,, @, £, (), etc.
Una vez encontrado, quiero reemplazarlo con un espacio en blanco.
Algún consejo.
Estoy tratando de averiguar la expresión regular que coincidirá con cualquier carácter que no sea una letra o un número. Entonces, caracteres como (,, @, £, (), etc.
Una vez encontrado, quiero reemplazarlo con un espacio en blanco.
Algún consejo.
Respuestas:
Para hacer coincidir cualquier cosa que no sea una letra o un número, puede intentar esto:
[^a-zA-Z0-9]
Y para reemplazar:
var str = 'dfj,dsf7lfsd .sdklfj';
str = str.replace(/[^A-Za-z0-9]/g, ' ');
Esta expresión regular coincide con cualquier cosa que no sea una letra, un dígito o un carácter de subrayado ( _
).
\W
Por ejemplo en JavaScript:
"(,,@,£,() asdf 345345".replace(/\W/g, ' '); // Output: " asdf 345345"
Estás buscando:
var yourVar = '1324567890abc§$)%';
yourVar = yourVar.replace(/[^a-zA-Z0-9]/g, ' ');
Esto reemplaza todos los caracteres no alfanuméricos con un espacio.
La "g" al final reemplaza todas las apariciones.
En lugar de especificar az (en minúsculas) y AZ (mayúsculas) también se puede utilizar la en-entre mayúsculas y minúsculas opción: /[^a-z0-9]/gi
.
Esto es demasiado tarde, pero dado que no hay una respuesta aceptada, me gustaría proporcionar la que creo que es la más simple: \ D - coincide con todos los caracteres que no son dígitos.
var x = "123 235-25%";
x.replace(/\D/g, '');
Resultados en x: "12323525"
Ver https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
intente hacer str.replace (/ [^ \ w] /); ¡Reemplazará todos los números y no alfabetos de su cadena!
Edición 1: str.replace(/[^\w]/g, ' ')
str.replace(/[^\w]/g, ' ')
. Si no incluye la /g
bandera, solo reemplazará la primera aparición. Y si no define una cadena de reemplazo, aquí un espacio en blanco ' '
, reemplazará por undefined
todo el lugar. Finalmente, los guiones bajos no serán reemplazados porque coinciden \w
. Esta respuesta no encaja perfectamente.
Solo para que otros vean:
someString.replaceAll("([^\\p{L}\\p{N}])", " ");
eliminará los caracteres Unicode que no sean letras ni números.
replaceAll
, y los \p{..}
escapes de propiedad no están ampliamente implementados.
/[A-Z]/ig
/[^A-Z]/ig
/[0-9]/g
o/\d+/g
/[^0-9]/g
o/\D+/g
/[^A-Z0-9]/ig
Hay otros patrones posibles
¿Lo ha probado? str = str.replace(/\W|_/g,'');
Devolverá una cadena sin ningún carácter y puede especificar si algún carácter especial después de la barra de tubería |
para capturarlos también.
var str = "1324567890abc§$)% John Doe #$@'.replace(/\W|_/g, '');
volverá str = 1324567890abcJohnDoe
o busque dígitos y letras y reemplácelos por una cadena vacía (""):
var str = "1324567890abc§$)% John Doe #$@".replace(/\w|_/g, '');
volverá str = '§$)% #$@';
Para hacer coincidir cualquier cosa que no sea letra o número o letra con signos diacríticos como é
, puede intentar esto:
[^\wÀ-úÀ-ÿ]
Y para reemplazar:
var str = 'dfj,dsf7é@lfsd .sdklfàj1';
str = str.replace(/[^\wÀ-úÀ-ÿ]/g, '_');
Inspirado en el poste superior con soporte para diacríticos
\w
es para caracteres de Word y es exactamente igual que[a-zA-Z0-9_]
(observe que el guión bajo se considera un carácter de palabra) ... por lo que la taquigrafía seríastr.replace(/[^\w]/g, ' ')