Haz todo lo posible por interpretar el código correctamente previamente a adaptarlo a tu proyecto y si tquieres aportar algo puedes decirlo en los comentarios.
Solución:
var desired = stringToReplace.replace(/[^ws]/gi, '')
Como se mencionó en los comentarios, es más fácil hacer esto como una lista blanca: reemplace los caracteres que no son en su lista de seguridad.
El signo de intercalación^
) carácter es la negación del conjunto [...]
, gi
digamos global y no distingue entre mayúsculas y minúsculas (este último es un poco redundante, pero quería mencionarlo) y la lista segura en este ejemplo son dígitos, caracteres de palabra, guiones bajos (w
) y espacios en blanco (s
).
Tenga en cuenta que si aún desea excluir un conjunto, incluidos elementos como barras y caracteres especiales, puede hacer lo siguiente:
var outString = sourceString.replace(/[`[email protected]#$%^&*()_|+-=?;:'",.<>\[]\/]/gi, '');
tenga en cuenta que para incluir también el carácter “menos”, debe escapar con una barra invertida como el último grupo. si no lo hace, también seleccionará 0-9, lo que probablemente no sea el deseado.
La expresión regular de Javascript simple no maneja letras Unicode.
No utilice [^ws]
, esto eliminará las letras con acentos (como àèéìòù), sin mencionar el cirílico o el chino, las letras provenientes de dichos idiomas se eliminarán por completo.
Realmente no desea eliminar estas letras junto con todos los caracteres especiales. Tienes dos posibilidades:
- Agregue en su expresión regular todos los caracteres especiales que no desea eliminar,
por ejemplo:[^èéòàùìws]
. - Eche un vistazo a xregexp.com. XRegExp agrega soporte básico para la coincidencia Unicode a través del
p...
sintaxis.
var str = "Їжак::: résd,$%& adùf"
var search = XRegExp('([^?\pL ]+)');
var res = XRegExp.replace(str, search, '',"all");
console.log(res); // returns "Їжак::: resd,adf"
console.log(str.replace(/[^ws]/gi, '') ); // returns " rsd adf"
console.log(str.replace(/[^wèéòàùìs]/gi, '') ); // returns " résd adùf"
Sección de Reseñas y Valoraciones
Ten en cuenta dar difusión a este tutorial si te ayudó.