¿Cómo puedo eliminar todos los caracteres de una cadena que no son letras usando un RegEx de JavaScript?Cómo eliminar todos los caracteres de una cadena
Respuesta
Puede utilizar el replace
método:
'Hey! The #123 sure is fun!'.replace(/[^A-Za-z]+/g, '');
>>> "HeyThesureisfun"
Si quería mantener espacios:
'Hey! The #123 sure is fun!'.replace(/[^A-Za-z\s]+/g, '');
>>> "Hey The sure is fun"
La expresión regular /[^a-z\s]/gi
está diciendo básicamente para que coincida con cualquier cosa que no la az carta o un espacio (\ s), al hacer esto globalmente (la bandera g
) e ignorar el caso de la cadena (la bandera i
).
Acabo de comprobarlo en la consola y funcionó muy bien. Me pregunto si él quería mantener espacios. – Nosredna
+1 Pero usaría el equivalente un poco más eficiente: 'replace (/ [^ A-Za-z \ s] +/g, '');' Esto coincidirá con más de un carácter en cada "trago", y el modo sensible a mayúsculas y minúsculas puede ser ligeramente más rápido con algunos motores de expresiones regulares. – ridgerunner
Tenga en cuenta que esto también eliminará los caracteres acentuados, que en mi opinión son letras. – rds
RegEx propiedades de la instancia utilizan g
, i
mundial: Ya sea para probar la expresión regular con todos los partidos posibles en una cadena, o sólo contra el primero.
ignoreCase: Si se ignora el caso al intentar una coincidencia en una cadena.
RegEx caracteres especiales utilizados [a-z]
, +
[^ xyz]: Un conjunto de caracteres negada o complementada. Es decir, coincide con cualquier cosa que no esté entre corchetes. Puede especificar un rango de caracteres usando un guion.
Por ejemplo,
[abcd]
es lo mismo que[a-d]
. Coinciden con la 'b' en "falda" y la 'c' en "cortar".+: Combina el elemento anterior 1 o más veces. Equivalente a {1,}.
JavaScript string replace método sintaxis
str.replace (regexp | substr, newSubStr | [banderas, no estándar] función);
Las banderas no estándar g
& i
se pueden pasar en la sintaxis reemplazar o integrados en la expresión regular. ejemplos:
var re = /[^a-z]+/gi; var str = "this is a string"; var newstr = str.replace(re, ""); print(newstr);
var str = "this is a string"; var newstr = str.replace(/[^a-z]+/, "", "gi"); print(newstr);
para que coincida con los espacios en blanco, así \ s se añadirían a la expresión regular [^a-z\s]+
.
Los indicadores están en el estándar ECMAScript. Pero el tercer argumento (flags) de 'String.prototype.replace' \t es [JavaScript-proprietary] (https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/replace). Evite a favor de banderas en el primer argumento (RegExp). – PointedEars
expresiones regulares en ECMAScript implementaciones están en mi humilde opinión explican mejor en la Mozilla Developer Network (formerly, Mozilla Developer Center) en el RegExp
article del JavaScript Language Reference pp.
Sin embargo, como se ha señalado, las respuestas anteriores no toman cartas-Inglés no en cuenta, como diéresis y letras acentuadas.Con el fin de no quitar las cartas de la cadena, hay que excluirlos del rango de caracteres, así:
var s = "Victor 1 jagt 2 zwölf 3 Boxkämpfer 4 quer 5 über 6 den 7 Sylter 8 Deich";
s = s.replace(/[^a-zäöüß]+/gi, "");
Este enfoque se convierte rápidamente en tedioso y difícil de mantener, especialmente si varios lenguas naturales tienen que ser considerado (e incluso en inglés apropiado hay palabras extranjeras como "déjà vu" y "fiancé").
Por lo tanto, entre otras características PCRE, JSX:regexp.js le permite usar expresiones regulares que pueden usar clases de propiedad Unicode, a través del Unicode Character Database (UCD).
A continuación, write¹
var s = "Victor 1 jagt 2 zwölf 3 Boxkämpfer 4 quer 5 über 6 den 7 Sylter 8 Deich";
var rxNotLetter = new jsx.regexp.RegExp("\\P{Ll}+", "gi");
s = s.replace(rxNotLetter, "");
o
var s = "El 1 veloz 2 murciélago 3 hindú 4 comía 5 feliz 6 cardillo 7 y 8 kiwi. La cigüeña tocaba el saxofón detrás del palenque de paja"
+ " – Съешь 1 же 2 ещё 3 этих 4 мягких 5 французских 6 булок, да 7 выпей 8 чаю.";
var rxNotLetterOrWhitespace = new jsx.regexp.RegExp("[^\\p{Ll}\\p{Lu}\\s]+", "g");
s = s.replace(rxNotLetterOrWhitespace, "");
a reducir la dependencia de las peculiaridades mayúsculas/minúsculas de implementaciones (y ser más extensible), para un RegExp
que excluye a todos los no-carta Caracteres Unicode (y espacio en blanco en el segundo ejemplo).
Asegúrese de proporcionar una versión de la base de datos de caracteres Unicode, así, ya que es grande, en proceso de cambio, y por lo tanto no integrado en regexp.js (JSX contiene un texto detallado y la versión compactada de la escritura el UCD; ambos pueden ser utilizados, y el último es preferido, por regexp.js). Tenga en cuenta que a conforming ECMAScript implementation does not need to support characters beyond the Basic Multilingual Plane (U+0000 to U+FFFF), por lo que jsx.regexp.RegExp
actualmente no puede admitir aquellos a pesar de que están en el UCD. Consulte la documentación en el código fuente para más detalles.
Votación máxima. ¡Esto es imprescindible si hay personajes no ingleses! – SoonDead
- 1. Eliminar todos los caracteres especiales de una cadena en R?
- 2. Eliminar todos los caracteres no ASCII de la cadena
- 3. PHP eliminar todos los caracteres antes de cadena específica
- 4. ¿Cómo se eliminan todos los caracteres alfabéticos de una cadena?
- 5. ¿Cómo eliminar caracteres inválidos de una cadena?
- 6. Regex para eliminar todos los caracteres especiales de la cadena?
- 7. Eliminar todos los caracteres excepto los alfabetos y los números de una cadena de Ruby
- 8. Eliminar todos los "caracteres de palabra" no de una cadena en Java, dejando caracteres acentuados?
- 9. ¿Cómo puedo eliminar todos los caracteres de control de una cadena java?
- 10. ¿Cómo eliminar los primeros 10 caracteres de una cadena?
- 11. Eliminar caracteres de una cadena
- 12. ¿Cómo eliminar caracteres especiales de una cadena?
- 13. ¿Cómo eliminar todos los caracteres no alfanuméricos y sin espacio de una cadena en PHP?
- 14. Cómo eliminar todos los caracteres que no sean ASCII de una cadena en Ruby
- 15. cadena de formato, eliminar los caracteres iniciales
- 16. Cómo eliminar caracteres repetidos en una cadena
- 17. ¿Cómo puedo eliminar todos los caracteres hasta e incluyendo la tercera barra en una cadena?
- 18. Eliminar todos los caracteres no alfabéticos, no numéricos de una cadena?
- 19. C# expresión regular para eliminar todos los caracteres alfabéticos y numéricos de una cadena?
- 20. Eliminar los primeros 4 caracteres de una cadena con PHP
- 21. Eliminar todos los caracteres no alfanuméricos mediante preg_replace
- 22. UTF-8 Cadena eliminar todos los caracteres invisibles excepto una línea nueva
- 23. cómo quitar los caracteres en una cadena?
- 24. Python Eliminar los últimos 3 caracteres de una cadena
- 25. Eliminar ciertos caracteres de una cadena
- 26. preg_replace para eliminar los caracteres no imprimibles parece eliminar todos los caracteres extraños
- 27. iphone sdk - Elimine todos los números, excepto los caracteres a-z de una cadena
- 28. Lote para eliminar caracteres de una cadena
- 29. Eliminar todos los caracteres después del signo $ usando Javascript
- 30. ¿Cómo eliminar todos los ceros del comienzo de la cadena?
@RD - ¿Qué posible respuesta está esperando? No creo que sea mucho más simple que la respuesta de Paolo ... ¿Y qué "fuentes creíbles y/o oficiales"? Eso no tiene ningún sentido ... – Kobi
un bounty no es un botón de "hacer código probado para mí". – AlfredoVR