Según mi investigación, parece que las expresiones regulares de Javascript no tienen ningún equivalente incorporado al modificador de Perl/x, o el modificador RegexOptions.IgnorePatternWhitespace de .NET. Estos son muy útiles ya que pueden hacer que una expresión regular compleja sea mucho más fácil de leer. En primer lugar, ¿me he perdido algo y hay un Javascript incorporado equivalente a estos? En segundo lugar, si no existe, ¿alguien sabe de un buen complemento de jQuery que implementará esta funcionalidad? Es una pena tener que comprimir mi expresión regular compleja en una sola línea debido a las aparentes limitaciones de expresiones regulares de Javascript.Ignorando el espacio en blanco en los patrones de expresiones regulares de Javascript?
Respuesta
Si le entiendo correctamente, ¿quiere agregar un espacio en blanco que no forme parte de la expresión regular? Por lo que yo sé, no es posible con expresiones regulares regulares.
Ejemplo:
var a = /^[\d]+$/
Puede dividir la expresión regular en varias líneas de la siguiente manera:
var a = RegExp(
"^" +
"[\\d]+" + // This is a comment
"$"
);
en cuenta que puesto que ahora es una cadena normal, usted tiene que escapar \ con \\
O si tiene una compleja:
var digit_8 = "[0-9]{8}";
var alpha_4 = "[A-Za-z]{4}";
var a = RegExp(
digit_8 +
alpha_4 + // Optional comment
digit_8
);
Actualización: El uso de una matriz temporal para concatenar la expresión regular:
var digit_8 = "[0-9]{8}";
var alpha_4 = "[A-Za-z]{4}";
var a = RegExp([
digit_8,
alpha_4, // Optional comment
digit_8,
"[0-9A-F]" // Another comment to a string
].join(""));
Sí, pero no es lo mismo. Tiene la fea sintaxis de concatenación de cadenas adicionales de Javascript, y todavía no puede poner comentarios al estilo Perl al final de las líneas, como: h (a | o) t # <- coincide con hat o hot – Jez
@Jez: Pero puedes poner comentarios de JavaScript allí. No hay otra forma, lamentablemente. JS no admite expresiones regulares. –
JavaScript no es perl. – Incognito
desafortunadamente no hay tal opción en la ES5, y sospecho que es poco probable que sea nunca en RegExp
literales, porque ya son muy difícil de analizar y los saltos de línea los harían aún más ambiguos.
Si desea un fácil escapado y resaltado de sintaxis de literales RegExp
, puede unirlos aprovechando la propiedad source
. No es perfecto, pero en mi humilde opinión menos malo que caer todo el camino de vuelta a cadenas:
new RegExp(
/foo/.source +
/[\d+]/.source +
/bar/.source
);
En ES6 puede crear su propia cadena de plantilla:
regexp`
foo
[\d+]
bar
`;
function regexp(parts) {
// I'm ignoring support for ${} placeholders for brevity,
// but full implementation should escape them.
// Note that `.raw` allows use of \d instead of \\d.
return new RegExp(parts.raw.join('').replace(/\s+/g,''));
}
- 1. Cambiar el delimitador de expresiones regulares en los patrones awk
- 2. comportamiento de los espacios en blanco de expresiones regulares grep
- 3. Combinando expresiones regulares en Javascript
- 4. ¿Guarda los patrones de expresiones regulares usados comúnmente en Vim?
- 5. expresiones regulares (expresiones regulares), reemplace la segunda aparición en javascript
- 6. Diferencias en los patrones de expresiones regulares entre JavaScript y Java?
- 7. Ignorando el espacio en blanco para una coincidencia Regex
- 8. Otra forma en lugar de escapar patrones de expresiones regulares?
- 9. expresiones regulares en Javascript con jQuery Contiene expresiones regulares extensión
- 10. ¿Qué significa [^] en expresiones regulares de Javascript?
- 11. ¿Podemos usar expresiones regulares en patrones de URL web.xml?
- 12. JavaScript reemplazar/expresiones regulares
- 13. expresiones regulares vs mientras que los bucles
- 14. JavaScript expresiones regulares - coincide con una serie de números hexadecimales
- 15. javascript expresiones regulares como funciones?
- 16. JavaScript expresiones regulares y subclases
- 17. Incluyendo comentarios en expresiones regulares de Java
- 18. JavaScript crear expresiones regulares mediante programación
- 19. javascript regex para contar caracteres en blanco
- 20. Javascript expresiones regulares de código postal canadiense
- 21. cómo evitar espacios en blanco en una expresión regular validación de expresiones regulares
- 22. componente de expresiones regulares contraseña componente (javascript)
- 23. Extracción de más de un espacio en blanco en powershell
- 24. Orientación de expresiones regulares necesario para Javascript
- 25. creando la matriz de expresiones regulares Javascript
- 26. de expresiones regulares negativo
- 27. Expresiones regulares en findstr
- 28. Uso de expresiones regulares en JSP EL
- 29. Significado de (?) En expresiones regulares
- 30. Limpiar expresiones regulares de Python
¿Por qué usar jQuery? jQuery no es la única forma de importar código externo. –