¿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.