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?


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


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


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('.',':');

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(".", ":") );

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(".", ":");

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(".", ":");

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

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

Atau jika Anda 9.61sudah menjadi string:

"9.61".replace('.',':')
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.