¿Cómo hago para reemplazar cadenas en JavaScript para convertir '9.61' a '9:61'?


275

Dada la línea de código

var value = $("#text").val();

y value = 9.61necesito convertirme 9.61a 9:61. ¿Cómo puedo usar la función de reemplazo de JavaScript aquí?


29
Tenga en cuenta que esto no tiene nada que ver con jQuery, sino solo con javascript antiguo.
Ikke

1
Tengo un problema similar. Tengo una variable 'var' en javascript y quiero reemplazar la cadena / caracteres que contiene. Intenté este código: var myObject = "my% dynamic% value \ n"; myObject = myObject.replace ("%", ""). replace ("\ n", ""); También probé myObject = myObject.replace ('%', ''). Replace ('\ n', ''); Me da el error de que reemplazar no es una función conocida
Balaji Birajdar 03 de

El mensaje de error exacto para el problema anterior es "Error de tiempo de ejecución de Microsoft JScript: el objeto no admite la propiedad o el método 'reemplazar'"
Balaji Birajdar

Respuestas:


539

Hazlo asi:

var value = $("#text").val(); // value = 9.61 use $("#text").text() if you are not on select box...
value = value.replace(".", ":"); // value = 9:61
// can then use it as
$("#anothertext").val(value);

Actualizado para reflejar la versión actual de jQuery. Y también hay muchas respuestas aquí que se adaptarían mejor a cualquier situación como esta. Usted, como desarrollador, necesita saber cuál es cuál.

Reemplazar todas las ocurrencias

Para sustituir múltiples caracteres a la vez usar algo como esto: name.replace(/&/g, "-"). Aquí estoy reemplazando todos los &caracteres con -. gsignifica "global"

Nota : es posible que deba agregar corchetes para evitar un error.title.replace(/[+]/g, " ")

créditos vissu y Dante Cullari


66
Lo intenté pero se produjo un error como value.replace no es una función :(
Nisanth Kumar

thephpdeveloper agregó algo para que sea correcto ... eso debería hacerlo ... ver editado anteriormente
Reigel

77
Esto no funcionará si intentamos reemplazar más de un valor a la vez. :(
vissu

56
Para sustituir múltiples caracteres a la vez usar algo como esto: name.replace(/&/g, "-"). Aquí estoy reemplazando todos los caracteres 'y' con '-'. "g" significa "global".
vissu

9
Nota: es posible que deba agregar corchetes para evitar un errortitle.replace(/[+]/g, " ")
Dante Cullari

67

Probablemente la forma más elegante de hacerlo es hacerlo en un solo paso. Ver val().

$("#text").val(function(i, val) {
  return val.replace('.', ':');
});

comparado con:

var val = $("#text").val();
$("#text").val(val.replace('.', ':'));

De los documentos:

.val( function(index, value) )

función (índice, valor) Una función que devuelve el valor a establecer.

Este método se usa generalmente para establecer los valores de los campos de formulario. Para los <select multiple="multiple"> elementos, se pueden seleccionar múltiples s pasando una matriz.

El .val()método nos permite establecer el valor al pasar una función. A partir de jQuery 1.4, a la función se le pasan dos argumentos, el índice del elemento actual y su valor actual:

$('input:text.items').val(function(index, value) {
  return value + ' ' + this.className;
});

Este ejemplo agrega la cadena "elementos" a los valores de las entradas de texto.

Esto requiere jQuery 1.4+.


pero como lo veo, el tipo solo quiere cambiar el var valuevalor y no el valor en el cuadro de texto como sugirió ...
Reigel

41

Me encanta el método de encadenamiento de jQuery . Simplemente haz ...

    var value = $("#text").val().replace('.',':');

    //Or if you want to return the value:
    return $("#text").val().replace('.',':');

17
esto no tiene nada que ver con el encadenamiento de jquery en realidad. Después de haber llamado .val(), es una cadena normal.
zerkms

19

Un simple revestimiento:

$("#text").val( $("#text").val().replace(".", ":") );

1
esto solo funcionará si el valor es una cadena ... y también, llamar $("#text")dos veces allí no es una buena práctica ...
Reigel

el OP tampoco especificó que quería reemplazar el valor de $("#text"):)
Reigel

Comentario 1 ... Incorrecto. Comentario 2 ... piense en la lógica de su pregunta, no es necesario especificarlo.
VIDesignz

probarlo .. y me acuerdo, de fechaJan 27 '10 at 10:16
Reigel

ni siquiera conoces las buenas prácticas ... quizás quieras leer esto ... stackoverflow.com/questions/3230727/…
Reigel

6

Se puede hacer con la función regular de JavaScript replace().

value.replace(".", ":");

3
No estoy seguro de si me perdí algo, pero dado que el valor proviene del cuadro de texto, ¿es una cadena no? Ejemplo jsfiddle.net/xMBuA
Anders

4

Puede usar funciones de JavaScript como reemplazar, y puede ajustar el código jQuery entre paréntesis:

var value = ($("#text").val()).replace(".", ":");

3
$("#text").val(function(i,v) { 
   return v.replace(".", ":"); 
});

1
(9.61 + "").replace('.',':')

O si 9.61ya es una cadena:

"9.61".replace('.',':')
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.