5 votos

OpenLayers.Filter.Comparison.LIKE ' caracteres especiales de filtro de t!

parece que OpenLayers.Filter.Comparison.LIKE no filtrar caracteres especiales! por ejemplo,

filter = new OpenLayers.Filter.Comparison({ 
    type: OpenLayers.Filter.Comparison.LIKE, 
    property: 'name', 
        value: 'blue' 
    }) 

esto funcionará bien. pero:

filter = new OpenLayers.Filter.Comparison({ 
    type: OpenLayers.Filter.Comparison.LIKE, 
    property: 'name', 
        value: 'light-blue' 
    }) 

Esto causará un error debido a de-

también no puede lidiar con puntos

¿Qué puedo hacer para arreglar eso?

EDITAR

Lo intenté:

var filter = new OpenLayers.Filter.Comparison(
  { type: OpenLayers.Filter.Comparison.LIKE,
    property: 'name',
    value: input }
);
filter.value2regex( "-","." ); 

Quería escapar de aquellos dos personajes de cualquier valor. pero nada cambia.

2voto

naknode Puntos 143

No pude encontrar un problema en mis pruebas con la "luz azul" de valor.

var filter = new OpenLayers.Filter.Comparison(
  { type: OpenLayers.Filter.Comparison.LIKE, property: 'name', value: 'light-blue' }
);
filter.evaluate( { name: 'light-blue' } );

El valor de la propiedad es un regexp cadena. Usted podría referencia el javascript de la documentación para los valores válidos: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/RegExp .

Así que si usted desea hacer coincidir con el carácter literal "-" se podría añadir escapa a su regexp:

var filter = new OpenLayers.Filter.Comparison(
  { type: OpenLayers.Filter.Comparison.LIKE, property: 'name', value: 'light\\-blue' }
);
filter.evaluate( { name: 'light-blue' } );

2voto

Adam Ernst Puntos 6939

Puede utilizar un carácter de escape en el filtro para 'ocultar' caracteres especiales. Los documentos no son muy claras pero parece que es el carácter de escape predeterminado!

En un mundo ideal sólo puede establecer la el solo y varios comodines a algo que no ocurre en las cadenas pero no parece ser una opción para eso :-(

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X