¿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í?

Nisanth Kumar
fuente
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

Reigel
fuente
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+.

cletus
fuente
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('.',':');
Shadrack B. Orina
fuente
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(".", ":") );
VIDesignz
fuente
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(".", ":");
Anders
fuente
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(".", ":");
kravits88
fuente
3
$("#text").val(function(i,v) { 
   return v.replace(".", ":"); 
});
andlrc
fuente
1
(9.61 + "").replace('.',':')

O si 9.61ya es una cadena:

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

fuente