2011-07-29 11 views

Respuesta

6

"?" es un carácter especial en una expresión regular (uno de los "cuantificadores") que significa "coincidir con el anterior cero o una vez". Esto llevó al error en este caso porque no fue precedido por nada. Sin embargo, "a?" no habría arrojado una excepción, pero coincidiría con "b", por lo que esto es algo importante a tener en cuenta.

Si se utiliza String.search, que toma una expresión regular (como señala karim79, no es la única manera), o utilizar "[?]""\\?" o /\?/. Estas formas evitarán el "?" de ser tratado como una construcción de expresión regular especial.

Happy coding.

1

Prueba esto:

alert(str.search("\\?")); 
1

Es cuantificador y usted no puede utilizar directamente. De javascriptkit.com

? es la abreviatura de {0,1}. Coincide con cero o una vez.

y MSDN

? Coincide con el carácter anterior o la subexpresión cero o uno tiempo. Por ejemplo, 'do (es)?' coincide con el "do" en "do" o "does". ? es equivalente a {0,1}

Este es el derecho de uso:

str.search("\\?") 
Cuestiones relacionadas