2011-09-14 18 views
5

Estoy tratando de eliminar un signo de libra (£) de una cadena usando javascript. Estoy tratando de hacerlo usando¿Cómo se reemplaza un signo de libra (moneda) en javascript?

str = str.replace(/\£/g, ""); 

Sin embargo, no está eliminando el letrero.

El valor de str se obtiene de un tramo (y se obtiene el valor correcto). Este lapso se ha establecido previamente usando javascript, con lo que se codifica en la cadena como

£ 

Cualquier ideas sobre la mejor manera de eliminar el signo de número?

+9

'replace ('£', '')' – Zirak

+3

@Zirak ... eso no funciona http://jsfiddle.net/EUV7c/ –

Respuesta

9

Es posible que necesite utilizar Unicode para esto. Por ejemplo, '£10.00'.replace(/\u00A3/g, '');

+0

Este parecía ordenarlo bastante bien para mí. Intenté algunas de las otras respuestas, pero esta resolvió el problema. Código potencialmente pobre en mi parte en otro lugar que tiene un efecto knock-in, por lo que las otras soluciones pueden funcionar bien para otras personas. – Lee

+0

Supongo que la razón por la que algunos de los otros no funcionaron se reduce a qué conjunto de caracteres se cargó la página (aunque no he verificado eso). De una forma u otra, parece haber ciertos contextos en los que el carácter literal '£' no coincidía como se esperaba. – jmar777

1

Usted sólo puede hacer

"hello w£orld".replace(/£/g,"") 
+0

¿dónde está tu g? – naveen

+1

no es necesario cuando solo hay un símbolo £. Ah ... pero el autor lo tenía allí ... Lo editaré –

3

Retire la barra invertida de su expresión regular.

+2

Una barra invertida no debería doler nada. – user113716

+0

+1 @patrick dw: no sé. lo siento. – naveen

3

De esta manera funciona para mí:

var str = "£sdfsdf"; 

str = str.replace("£", ""); 

alert(str); 

violín aquí: http://jsfiddle.net/peUrn/1/

1

La manera más fácil es:

str.replace('£', ''); 
+0

Esto no funcionará en HTML porque una región 'script' está" protegida ". (Es mucho más sensato que tener que escribir 'if (a & & b) {...}' como en XML fuera de CDATA :-) –

+0

@pst ¿por qué? él dice que está codificado – nidhin

+0

Buen punto ... no estoy seguro de lo que está pasando ahora. –

0

codifica un componente identificador uniforme de recursos (URI) mediante la sustitución de cada instancia de ciertos caracteres por uno, dos, o tres secuencias de escape que representa la codificación UTF-8 del carácter

Lo que significa que, con el fin para codificar un signo de libra, JavaScript usa 2 caracteres.

£ = %C2%A3 

Consulte http://fyneworks.blogspot.com/2008/06/british-pound-sign-encoding-revisited.html para obtener más información.

Lo mejor sería usar% C2% A3 en lugar del signo de libra en su secuencia de comandos.

+0

Esto es para codificar en una URL/URI, no para codificar en una cadena o literal de expresiones regulares (por ejemplo, código de JavaScript). –

+0

Lo sé, es solo tener la referencia puede ayudar. –

Cuestiones relacionadas