Bagaimana cara saya mengganti string dalam JavaScript untuk mengkonversi '9.61' ke '9:61'?

275

Diberikan baris kode

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

dan value = 9.61, saya perlu mengonversi 9.61ke 9:61. Bagaimana saya bisa menggunakan fungsi ganti JavaScript di sini?

Nisanth Kumar
sumber
29
Perhatikan bahwa ini tidak ada hubungannya dengan jQuery, tetapi hanya dengan javascript lama biasa.
Ikke
1
Saya punya masalah serupa. Saya memiliki variabel 'var' dalam javascript dan saya ingin mengganti string / karakter di dalamnya. Saya mencoba kode ini: var myObject = "my% dynamic% value \ n"; myObject = myObject.replace ("%", ""). ganti ("\ n", ""); Juga mencoba myObject = myObject.replace ('%', ''). Ganti ('\ n', ''); Ini memberi saya kesalahan yang menggantikan bukan fungsi yang dikenal
Balaji Birajdar
Pesan galat yang tepat untuk masalah di atas adalah "Kesalahan runtime Microsoft JScript: Objek tidak mendukung properti atau metode 'ganti'"
Balaji Birajdar

Jawaban:

539

Lakukan seperti ini:

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);

Diperbarui untuk mencerminkan ke versi jQuery saat ini. Dan juga ada banyak jawaban di sini yang paling cocok untuk situasi yang sama seperti ini. Anda, sebagai pengembang, perlu tahu yang mana.

Ganti semua kejadian

Untuk mengganti beberapa karakter pada satu waktu menggunakan beberapa hal seperti ini: name.replace(/&/g, "-"). Di sini saya mengganti semua &karakter dengan -. gberarti "global"

Catatan - Anda mungkin perlu menambahkan tanda kurung siku untuk menghindari kesalahan -title.replace(/[+]/g, " ")

kredit vissu dan Dante Cullari

Reigel
sumber
6
Saya mencoba itu tetapi terjadi kesalahan sebagai value.replace bukan fungsi :(
Nisanth Kumar
thephpdeveloper menambahkan sesuatu untuk membuatnya benar ... yang seharusnya melakukannya ... lihat diedit di atas
Reigel
7
Ini tidak akan berhasil jika kami mencoba mengganti lebih dari satu nilai sekaligus. :(
vissu
56
Untuk mengganti beberapa karakter pada satu waktu menggunakan beberapa hal seperti ini: name.replace(/&/g, "-"). Di sini saya mengganti semua '&' karakter dengan '-'. "g" berarti "global".
vissu
9
Catatan - Anda mungkin perlu menambahkan tanda kurung siku untuk menghindari kesalahan -title.replace(/[+]/g, " ")
Dante Cullari
67

Mungkin cara paling elegan untuk melakukan ini adalah melakukannya dalam satu langkah. Lihat val().

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

dibandingkan dengan:

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

Dari dokumen:

.val( function(index, value) )

function (index, value) Suatu fungsi yang mengembalikan nilai yang ditetapkan.

Metode ini biasanya digunakan untuk mengatur nilai bidang formulir. Untuk <select multiple="multiple"> elemen, banyak s dapat dipilih dengan mengirimkan array.

The .val()Metode memungkinkan kita untuk mengatur nilai dengan melewati dalam suatu fungsi. Pada jQuery 1.4, fungsi dilewatkan dua argumen, indeks elemen saat ini dan nilai saat ini:

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

Contoh ini menambahkan string "item" ke nilai input teks.

Ini membutuhkan jQuery 1.4+.

cletus
sumber
tetapi seperti yang saya lihat orang itu hanya ingin mengubah var valuedan bukan nilai dalam kotak teks seperti yang Anda sarankan ...
Reigel
41

Saya suka metode chaining jQuery . Cukup lakukan ...

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

    //Or if you want to return the value:
    return $("#text").val().replace('.',':');
Shadrack B. Orina
sumber
17
ini sebenarnya tidak ada hubungannya dengan chaining jquery. Setelah Anda memanggilnya .val(), ini adalah string biasa.
zerkms
19

Satu liner sederhana:

$("#text").val( $("#text").val().replace(".", ":") );
VIDesignz
sumber
1
ini hanya akan berfungsi jika nilainya berupa string ... dan juga, memanggil $("#text")dua kali karena tidak ada praktik yang baik ...
Reigel
OP juga tidak menentukan bahwa dia ingin mengganti nilai $("#text"):)
Reigel
Komentar 1 ... Salah. Komentar 2 ... pikirkan tentang logika pertanyaannya, tidak perlu ditentukan.
VIDesignz
buktikan .. dan ingat, tertanggalJan 27 '10 at 10:16
Reigel
Anda bahkan tidak tahu praktik yang baik .. Anda mungkin ingin membaca ini .. stackoverflow.com/questions/3230727/…
Reigel
6

Ini dapat dilakukan dengan fungsi JavaScript biasa replace().

value.replace(".", ":");
Anders
sumber
3
Saya tidak yakin jika saya melewatkan sesuatu tetapi karena nilai berasal dari kotak teks itu adalah string tidak? Contoh jsfiddle.net/xMBuA
Anders
4

Anda dapat menggunakan fungsi JavaScript seperti ganti, dan Anda dapat membungkus kode jQuery dalam tanda kurung:

var value = ($("#text").val()).replace(".", ":");
kravits88
sumber
3
$("#text").val(function(i,v) { 
   return v.replace(".", ":"); 
});
andlrc
sumber
1
(9.61 + "").replace('.',':')

Atau jika Anda 9.61sudah menjadi string:

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